#Once again added stuff in haste at the start, several times.  need to tidy up and move these to correct sections some time after meditating and medicating.

##########################################################################
##########################################################################
# bedrocklinux stuff.  bedrock stuff.  the bedrock section ###############
###
# reminder... move the rest of the bedrock stuff to within this section. #

############################################################
################  the bedrocklinux section  ################
############################################################
#
# bedrockery
#  __          __             __
#  \ \_________\ \____________\ \___  ___ _ _ _  _
#   \  _ \  _\ _  \  _\ __ \ __\   / / -_) '_| || |
#    \___/\__/\__/ \_\ \___/\__/\_\_\\___|_|  \_, |
#                       Bedrock Linux         |__/
#
# bedrockery
#  __          __             __
#  \ \_________\ \____________\ \______________
#   \  _ \  _\ _  \  _\ __ \ __\   /  _\  _\ \ \
#    \___/\__/\__/ \_\ \___/\__/\_\_\__/\_\ \__ \
#                       Bedrock Linux         \_/  :)
# 

# alt format for having a command issued on each strata
# brl list | xargs -i strat -r {} foo
# 
# e.g.
#
# brl list | xargs -i strat -r {} neofetch

############################################################
# brl aliases ##############################################



function brllistline
    brl list | tr '\n' ' '
end

function neofetches
    neofetch
    for i in (brl list | egrep -v bedrock); strat -r $i neofetch; end
end

function fastfetches
    fastfetch
    for i in (brl list | egrep -v bedrock); strat -r $i fastfetch; end
end

function brlwhiches
    for i in (brl list | egrep -v bedrock); strat -r $i brl which $argv; end
end

function brll
    brl list
end

function brlw
    brl which $argv
end

alias brlws brlwhiches

function brlo
    brl which # for the phonetic lols
end

alias brlos brlwhiches # for the phonetic lols
function whohas
    brlwhiches $argv ; pmms $argv
end


##################################################
#__          __             __      
#\\ \\_________\\ \\____________\\ \\___  
# \\  _ \\  _\\ _  \\  _\\ __ \\ __\\   /  
#  \\___/\\__/\\__/ \\_\\ \\___/\\__/\\_\\_\\ 
#             Bedrock Linux 0.7 Poki"
function bedrockascii
    echo "__          __             __      
\\ \\_________\\ \\____________\\ \\___  
 \\  _ \\  _\\ _  \\  _\\ __ \\ __\\   /  
  \\___/\\__/\\__/ \\_\\ \\___/\\__/\\_\\_\\"
end

alias brlascii bedrockascii 
alias brl-ascii bedrockascii 
alias bedrock-ascii bedrockascii

#forthestonks  (lol, i must stop saying that.)
function bedrockascii-shadey
set_color "#EEEEEE" ; echo "__          __             __      "
set_color "#BBBBBB" ; echo "\\ \\_________\\ \\____________\\ \\___  "
set_color "#999999" ; echo " \\  _ \\  _\\ _  \\  _\\ __ \\ __\\   /  "
set_color "#777777" ; echo "  \\___/\\__/\\__/ \\_\\ \\___/\\__/\\_\\_\\" # stonks.      #rrly must stop.
set_color normal
end
alias brl-ascii-shadey bedrockascii-shadey
alias bedrock-ascii-shadey bedrockascii-shadey

#workingtitle themerock  (based on bedrockascii-shadey, using theme)
function themerock
set_color "#FFFFFF" ; echo "__          __             __      "
set_color brwhite ; echo "\\ \\_________\\ \\____________\\ \\___  "
set_color white ; echo " \\  _ \\  _\\ _  \\  _\\ __ \\ __\\   /  "
set_color brblack ; echo "  \\___/\\__/\\__/ \\_\\ \\___/\\__/\\_\\_\\" # stonks.      #rrly must stop.
set_color normal
end

alias bedrockascii-shadeytheme themerock

function ambergris
set_color black ; echo -n "█" ; set_color red ; echo -n "█" ; set_color green ; echo -n "█" ; set_color yellow ; echo -n "█" ; set_color blue ; echo -n "█" ; set_color magenta ; echo -n "█" ; set_color cyan ; echo -n "█" ; set_color white ; echo "█" ; set_color brblack ; echo -n "█" ; set_color brred ; echo -n "█" ; set_color brgreen ; echo -n "█" ; set_color bryellow ; echo -n "█" ; set_color brblue ; echo -n "█" ; set_color brmagenta ; echo -n "█" ; set_color brcyan ; echo -n "█" ; set_color brwhite ; echo "█"
end

function ambergrisquids
set_color black ; echo -n "£" ; set_color red ; echo -n "£" ; set_color green ; echo -n "£" ; set_color yellow ; echo -n "£" ; set_color blue ; echo -n "£" ; set_color magenta ; echo -n "£" ; set_color cyan ; echo -n "£" ; set_color white ; echo "£" ; set_color brblack ; echo -n "£" ; set_color brred ; echo -n "£" ; set_color brgreen ; echo -n "£" ; set_color bryellow ; echo -n "£" ; set_color brblue ; echo -n "£" ; set_color brmagenta ; echo -n "£" ; set_color brcyan ; echo -n "£" ; set_color brwhite ; echo "£"
end

#for next fish_greeting.  with mo data than ^squids.  like ambergristle V.
function ambergrisquidies
set_color black ; echo -n "£" ; set_color red ; echo -n "£" ; set_color green ; echo -n "£" ; set_color yellow ; echo -n "£" ; set_color blue ; echo -n "£" ; set_color magenta ; echo -n "£" ; set_color cyan ; echo -n "£" ; set_color white ; echo -n "£ " ; echo (brl version)
set_color brblack ; echo -n "£" ; set_color brred ; echo -n "£" ; set_color brgreen ; echo -n "£" ; set_color bryellow ; echo -n "£" ; set_color brblue ; echo -n "£" ; set_color brmagenta ; echo -n "£" ; set_color brcyan ; echo -n "£" ; set_color brwhite ; echo -n "£ " ; echo (uname -rs)
end

function ambergristle
bedrockascii-shadey
set_color black ; echo -n "█" ; set_color red ; echo -n "█" ; set_color green ; echo -n "█" ; set_color yellow ; echo -n "█" ; set_color blue ; echo -n "█" ; set_color magenta ; echo -n "█" ; set_color cyan ; echo -n "█" ; set_color white ; echo -n "█" ; set_color -b blue ; echo -n (brl version) ; set_color -b black ; set_color brblack ; echo "" ; set_color brblack ; echo -n "█" ; set_color brred ; echo -n "█" ; set_color brgreen ; echo -n "█" ; set_color bryellow ; echo -n "█" ; set_color brblue ; echo -n "█" ; set_color brmagenta ; echo -n "█" ; set_color brcyan ; echo -n "█" ; set_color brwhite ; echo -n "█" ; set_color -b blue ; set_color brcyan ; echo -n ""(set_color green)""(date +%Y%m%d)""(set_color cyan)" " ; uname -rs ; set_color -b black
end


#mortimer probably needs renamed.  just added this today.  hehe.  
function mortimer
    cd ;and clear ;and fish_greeting ;and sleep 2 ;and mortimer
end

#### idea
# brl-robust
# like brl-provides is the plural of brl which
# brl-robust (initial working name) is plural
# of rspmi.  as in, it installs the package in every distro it can.  :D
# or, rspmi=pmmi or whatever pmm's install is.

#######
# proto package manager manager
#
# ... it's a bedrock thing.  calm down.
alias ppmm "protopackagemanagermanager"
#alias protopackagemanagermanager "protopmm"
alias protopackagemanagermanager "pmm"
#function protopmm
function pmmm
    echo "this is just pseudocode so far"
    echo "if update/up then"
    echo "
strat -r genx emerge --sync --quiet ;and strat -r gentoo emerge --sync --quiet ;and strat -r ceres apt-get update ;and strat -r devgaktest apt-get update ;and strat -r devuan apt-get update ;and strat -r trentoo emerge --sync --quiet ;and strat -r void xbps-install -S
"
echo
echo "if search/-s $thing then"
echo "genx eix -c $thing ;and xbps-query -Rs $thing ;and apt-cache search $thing"
echo
echo "that kind of thing, but variablised."
echo "that means you sleepy developer"
sleep 1
echo "(who only seems to touch this late at night)"
sleep 1
echo "so this is your reminder, Digit.  code this up when awake.  go on... run pmm one more time... i dare you.  i double dare you.  run pmm."
echo
sleep 3
echo "and see burps and bu , so far.  ;)  proto proto proto pmm.  ;)"
end
#dev notes.  brl which.   can haz brl which n have its output in place, n use its output to determine which package manager to use.  could create a list with asignments of which package manager to use with it.  and/or a list explaining which strata are which type of distro (and therefor which type (from the other list) of package manager to use with that type of distro.  but lets just start see if i can do something useful with "(brl which)", in a command.   ... i'll probably not get to this stuff before paradigm makes pmm.  but it's good to think about.  perchance i'll fullfill my own need, scratch my own itch, n get the joyous feels of empowerment, and the rich rewards of education.  ... my fish-fu gonna be gud.  gonna hafta be.
#okleme just see if i can at least first make a rudimentary search
function burps
    #idk, do i need this?  :3 for line?  :3
    #for i in $argv;
    #nohhh, it'd be more like:
    #for i in brl list
    #or something.  will work that out later.
echo " ======== void ======== "
    xbps-query -Rs "$argv"
echo " ======== gentoo ======== "
    eix -c "$argv"
echo " ======== devuan ======== "
#can cut/awk/sed/grep my way to have "packagename packageversion", maybe from "apt-cache show" output easier than from "apt search"
#apt-cache show bc | cut -d" " -f2 | head -n 2 | paste -d " "  - -

#apt-cache show teeworlds | egrep '^Version|^Package' | paste -d " "  - - |  sed 's/Package: //g' | sed 's/Version: //g'
#both ^ get it right for 1 result, but doesnt search for packages with partial names.  should sed/grep/awk/paste/cut/etc from "apt search" output or from "apt-cache search -f" output instead?  :3
#apt-cache search "$argv"
apt-cache search -f "$argv" | egrep '^Version|^Package' | paste -d " "  - - |  sed 's/Package: //g' | sed 's/Version: //g'
echo " ======== ceres ======== "
strat ceres apt-cache search -f "$argv" | egrep '^Version|^Package' | paste -d "
"  - - |  sed 's/Package: //g' | sed 's/Version: //g'
echo " ======== ubuntu ======== "
strat ubuntu apt-cache search -f "$argv" | egrep '^Version|^Package' | paste -d " "  - - |  sed 's/Package: //g' | sed 's/Version: //g'
echo " ======== arch ======== "
#gonna wanna clean up pacman's output too... since it's 2 line too
pacman -Ss "$argv"
echo " ======== AUR ======== " #depends on which aur wrapper
# yay -Q "$argv" ### idk where i got that wrongness from
yay -Ss -a "$argv"
echo " ======== crux ======== "
    # pkginfo "$argv"
    prt-get search "$argv"
end

#
function pmms
# devuan style
    pmm search $argv
# gentoo style
#pmm --search $argv
end

function pmmsi
    pmm list --installed | grep $argv
end

function pmmu
    echo "heck, dont even do this, without sudo, or it just times out on everything after the first"
    echo "but okay, if you really want, run su, and fish, then paste:"
    echo "for i in (brl list) ; sudo strat -r \$i pmm update ; end"
echo 
    echo "but as for now, gonna run that as user and see if you get to the sudo prompt..."
    for i in (brl list) ; sudo strat -r $i pmm update ; end
end

function pmmug #dont do this
    echo "dont do this"
echo "for i in (brl list) ; sudo strat -r $i pmm upgrade ; end"
end

#pasted this to /root/.fishrc, where it makes sense
# bu
function bu # rly is a sensible less static-coded way to do this, with pmm.  XD
    if test (id -u) -eq 0
        echo " ======== void ======== "
        sudo xbps-install -S
        echo " ======== gentoo ======== "
    #    emerge --quiet --sync
        sudo premerg #if you have it (see mergence).
        echo " ======== devuan ======== "
        sudo strat devuan apt-get update
        echo " ======== ceres ======== "
        sudo strat ceres apt-get update
        echo " ======== ubuntu ======== "
        sudo strat ubuntu apt-get update
        echo " ======== pacman ======== "
        sudo pacman -Sy --quiet
        echo " ======== AUR ======== "
        sudo yay -Sy --quiet
        echo " ======== crux ======== "
        sudo ports -u
        #add alpine
        #add ubuntu
    else
        echo "gotta be root user to update the available packages list"
    end
end
#i gotta make a version of this portable, not static, so it's savvy enough to know to upgrade whatever existing strata, and not be told explicitly

######### brl whichs
########### brl universal which
############# buw                      <- i like this.  i did think of bruw first, but this is nice too.  unlike halfnotions of which+bedrock=whibh or something).
### this needs work.
##### like
####### s|/usr/share/|PATH| or something, and s/openttd/$argv/ or something.
function brother
    echo "this is not correct yet.  beyond pseudocode, but a janky copypasta from a specific use case, yet to be editited and generalised."
#    for i in (brl list); strat -r $i ls /usr/share/ | grep openttd ;end
    for i in (brl list); strat -r $i whereis $argv ;end # nrly...?  kinda works, but need to get it show which it's from.
#    for i in (brl list); strat -r $i {for e in echo $PATH; ls $e | grep $argv} ;end #how did that one when tested swappipng $argv for openttd end up in needing to exit 15 shells to get back to fish?  n_n  shud make this when not sleepy.
end
#dangit, i had the brlwhichs^ working before, in some piece of code somewhere, and even spoke of it in irc, or on the forum or redit or somewhere?  *shrug*

###it's ok.  paradigm made this brl-provides.sh:
###!/bedrock/libexec/busybox sh
##cmd="${1}"
##for s in $(/bedrock/bin/brl list); do
##	if p="$(/bedrock/bin/strat -r "${s}" /bedrock/libexec/busybox which "${cmd}")"; then
##		echo "${s}: ${p}"
##	fi
##done

###i'm welcome to try remake it in fish if i like, but i just pasted it to that filename in path n chmod'd it.  brl-provides provides what my brl whichs was sposa, and it's a better word for it.

######^^^ end of (now since edited n still not moved) copy pastas from old prior sdb4 bedrock.

#terminal
## preferred terminal
#st
#alias terminal sts
## preferred st
#alias sts ~/gitting/sts/st004/st/st

#rrr, that didnt work... try it simply like:
function terminal4
    ~/gittings/sts/st004/st/st
end
#lolmeh, i'll also just add it to
## ln -s /home/digit/gittings/sts/st004/st/st st

#notes
#some day i will
# get
#  key locations variablised
#   like
#    digitsaudio
#    latest audio dev dir
#    images
#    cinema
#     specific cinema dirs
#
#  so if/when they change,
#  i just need change location once
#  (in the variable definition)
#  n not change each n all instances

#set -gx PATH $PATH /home/digit/xiki-master/bin /home/digit/bin /media/x3/software/sources/flite-2.0.0-release/bin /home/digit/.cabal/bin/ /home/digit/.guix-profile/bin /usr/games/bin

#nope, this is not the way to do it either.  every fresh fish re-adds this.
#set -gx PATH $PATH /home/digit/bin /usr/games/bin /usr/games

#######################another old static path setting################################
#i'm just gonna set the whole thing straight, static, right here.   no $PATH in PATH. ~! wtf man this is no right on devuan... why u confuse me with this bedrock in my path.   
##set -gx PATH /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /bedrock/cross/bin /home/digit/bin /usr/games/bin /usr/games
### why was that^ getting set idk.  dont edit configs when sleepy with crazy ideas to test.  brl when, not b4
#set -gx PATH /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games
#lets hope my meddling with dmenu-bind.sh up next doesnt mess things up.  ... hrm, yup, dmenu_run, 
#######################################################################################

#######################################################################################
################# static path mend attempt 20200815 ###################################
#######################################################################################
#i'm just gonna set the whole thing straight, static, right here.   
#set -gx PATH /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /bedrock/cross/bin
#set -gx PATH /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /bedrock/cross/bin
#/usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games 
#lets hope my meddling with dmenu-bind.sh up next doesnt mess things up.  ... hrm, yup, dmenu_run, 
#######################################################################################
################# static path mend attempt 20200815 ###################################
#######################################################################################

#######################################################################################
################# static path mend attempt 20201110 ###################################
#######################################################################################
# ok,  so i installed nix, from a terminal in ubuntu(studio) hijack/init stratum...
# using curl -L https://nixos.org/nix/install | sh -s -- --daemon
# ^ as got from https://github.com/NixOS/nix 's readme.   daring.  but only shows up in
# bash path:
# /home/digit/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/home/digit/bin:/bedrock/cross/pin/bin:/bedrock/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/games:/usr/games:/opt/bin:/usr/lib/llvm/14/bin:/bedrock/cross/bin
# where as the fish that starts from that, only had:
# /home/digit/bin /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin /bin /sbin /usr/local/games /usr/games /opt/bin /usr/lib/llvm/14/bin /bedrock/cross/bin

# so addapting this... 
#set -gx PATH /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /bedrock/cross/bin

#with these parts

#set -gx PATH

#/home/digit/.nix-profile/bin /nix/var/nix/profiles/default/bin 

#/home/digit/bin

#/bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin /bin /sbin /usr/local/games /usr/games /opt/bin /usr/lib/llvm/14/bin:/bedrock/cross/bin

#/bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /bedrock/cross/bin

# into
#set -gx PATH /home/digit/.nix-profile/bin /nix/var/nix/profiles/default/bin /home/digit/bin /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin /bin /sbin /usr/local/games /usr/games /opt/bin /usr/lib/llvm/14/bin:/bedrock/cross/bin /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /bedrock/cross/bin
#^ which is just them all botched together.   no.   uhh... 

#ok, so, try this one... 
#set -gx PATH /home/digit/.nix-profile/bin /nix/var/nix/profiles/default/bin /home/digit/bin /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /usr/lib/llvm/14/bin:/bedrock/cross/bin /bedrock/cross/bin 

#/bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin /bin /sbin /usr/local/games /usr/games /opt/bin /usr/lib/llvm/14/bin:/bedrock/cross/bin

#/bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /bedrock/cross/bin



#######################################################################################
################# static path mend attempt 20201110 ###################################
#######################################################################################





#another PATH attempt... lets see if this works the magic -- oops, no, yes, of course this wont work until fish is my login manager.  reverting back to prior static version.  ... until i get fish set as my login shell.
#if status --is-login #https://github.com/fish-shell/fish-shell/issues/5117#issuecomment-408639996
#  set -gx PATH $PATH /home/digit/bin /usr/games/bin /usr/games
#  set -gx PATH (printf '%s\n' $PATH | sort -u) #https://github.com/fish-shell/fish-shell/issues/5117#issuecomment-408639996
#end

# path reference comparison from root sh
#
#/bedrock/cross/pin/bin:/bedrock/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/games:/usr/games:/bedrock/cross/bin
#
#
# path reference comparison from digit's bash
#/home/digit/bin:/bedrock/cross/pin/bin:/bedrock/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/games:/usr/games:/opt/bin:/usr/lib/llvm/14/bin:/bedrock/cross/bin
#
#

#so, yet another static path fix attemp, upon seeing fish couldnt see pmm when ran from my alias, wat.
#
#set -gx PATH /home/digit/bin:/bedrock/cross/pin/bin:/bedrock/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/games:/usr/games:/opt/bin:/usr/lib/llvm/14/bin:/bedrock/cross/bin
#20240601 attempt... using what running, + xscreensaver dir.
#set -gx PATH /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games  /usr/libexec/xscreensaver /bedrock/cross/bin
#ok, but making it use the specific stratum, apparently necessary, i'm guessing, since^ didnt seem to work, somehow.
#set -gx PATH /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /usr/libexec/xscreensaver /bedrock/cross/bin
#or was it just the space.... test that first...  before
# nope.  try this then
set -gx PATH /bedrock/cross/pin/bin /bedrock/bin /usr/local/bin /usr/local/sbin /opt/bin /opt/sbin /usr/bin /usr/sbin /bin /sbin /snap/bin /home/digit/bin /usr/games/bin /usr/games /bedrock/strata/devuan/usr/libexec/xscreensaver /bedrock/cross/bin
#lol, yeah, make sure not typo it as stratum instead of strata.  lol.
#######################################################################################

function realc
    string repeat -n (math "$LINES - 2") \n #bind to ctrl+shift+l
end

# binding bottom align
#bind \c\sl string repeat -n (math "$LINES - 2") \n #bind to ctrl+shift+l


# as one line as i made it
# clear ; echo ; bedrock-ascii | lolcat -v 3 -h 0.8 -r ; echo "                     Bedrock Linux" ; echo


#fix the grep bug, alegedly.
#alias grep "/usr/bin/grep $GREP_OPTIONS"
#unset GREP_OPTIONS
# ... is okay yet again?
#


# you are now leaving
# the bedrockery
#  __          __             __                         __ 
#  \ \_________\ \____________\ \______________  ________\ \
#   \  _ \  _\ _  \  _\ __ \ __\   /  _\  _\ \ \/ _\   \ _  \
#    \___/\__/\___/\_\ \___/\__/\_\_\__/\_\ \__ \__/\_\_\___/ 
#                       Bedrock Linux         \_/  
# 
##############################################################
################  the bedrocklinux section  #################
############################################################
### here endeth the 
# bedrocklinux stuff.  bedrock stuff.  the bedrock section ###############
##########################################################################
##########################################################################


#current way in 2024 i get an old htop fork with the stratum collumn to show and not choke on a library fail nor chew up too much ram over time.
function retopper ; sleep 2 ; timeout 42m strat decibel htop ; sleep 2 ; retopper ; end

#to get that error to stfu... 
#export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
#set LD_PRELOAD /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0

alias mcedit "mcedit --nosubshell"
# ^ "--nosubshell" for fast start.  other solutions available, if needing subshell

#exherbo
function exherbo
    strat -r exherbo
end

#pomodoro
function pomodoro
         timeout 15
end

function pomodorofy
    flite -voice rms -t "$argv" -o pomo.wav
#    timeout 1m mpv --loop pomo.wav #testing
    timeout 15m mpv --loop pomo.wav
end

function extracturls
grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | sort -u
end

function emacs2022althome #we'll work on the name later.
## [2022-07-17 17:05:50] <euouae> Digit: Here's a couple tips: If you run emacs with `HOME=~/foo/bar emacs` you can pretend your home is ~/foo/bar, so you can fully test a new 'emacs' in any way you'd like without breaking your day-to-day emacs
#[2022-07-17 17:06:46] <euouae> Digit: and use `C-h v variable` and `C-h f function` to read the docs of these things, and importantly, delve into their implementation to see what they do. Reading others' source code is a good way to learn.

#e.g.
#HOME=/home/digit/.emacsdigit2022emacs emacs

#HOME=/home/digit/sdc1/emacs2022newhome/ emacs

HOME=/home/digit/sdc1/software/configs/emacs/2022/000/ emacs
end

#cleans
#cleanall
function cleanall
    cleanvoid
    cleanarch
    cleangentoo
    cleandevuan
    #i'll add the rest later
end

function cleanvoid
sudo xbps-remove -O #removes... something
sudo xbps-remove -o #removes... something
echo "and there's more voidlinux cleanups to yet add to this cleanvoid function"
end

function cleanarch
#make more
    pacman -Sc
end
#and adds cleanarch to cleanall

function cleangentoo
    #
    echo "~~~~ this cleangentoo function does nothing yet~~~~"
end


function cleandevuan
    #
    echo "~~~~ this clean devuan function does nothing yet~~~~"
end


#################################
#######################
##### clean ######
################
############
#####
##
#

function whatnwhere
echo -n (whatis $argv)
echo -n ".  "
echo (whereis $argv)
end

function wherenwhat
echo -n (whereis $argv)
echo -n ".  "
echo (whatis $argv)
end

#
function taskmaster
mpv ~/cinema/_Comedy/taskmaster/*.* --shuffle
end

#digits example function
function functionwithexampleoptions -a functweo -d "function with example options"
echo "this function defined as functionwithexampleoptions in the config has been given the argument name (-a) functweo and the description (-d): function with example options"
end
#never mind then.  go back to https://fishshell.com/docs/current/cmds/function.html and re-read.

#function sayer
function say
#as first created:
#20220430 void /home/digit/.config/herbstluftwm % man set | flite -voice aws $argv -o justsayin.wav ; mpv justsayin.wav --loop
#use sayer like man something | sayer.  and it should just work,.... i say with crossed fingers yet to try...
#
# okay, some meddling more, and... tricky to get flite to accept either file or string...
# is $argv right?  ... $1's not, surely.  
# -t or -f ?  need separate versions in the function separated by an if?  (or an inline if)?
flite -voice aws -t $argv -o justsayin.wav ; mpv justsayin.wav --loop ; rm justsayin.wav
end
#alias say sayer #though sayer still in dev^.  :3  ... would be good to get a simple pipey alias to say things.

function sayall
flite -voice aws -f $argv -o justsayin.wav ; mpv justsayin.wav --loop ; rm justsayin.wav
end

function digitemacs
#emacs -q --load "/path/to/init.el"
emacs -q --load "/home/digit/.emacsdigit2022emacs/init.el"
end

#movemeeeee
function dancemonkey
echo "not made yet"
sleep 4
fish_prompt
sleep 2
echo "okay, fine, have this crappy quick-n-dirty junk web version..."
strat aurtix mpv --no-video "https://www.youtube.com/watch?v=bRTgTsHb4l0" "https://www.youtube.com/watch?v=4iQxG8ZjYO8" "https://www.youtube.com/watch?v=q0hyYWKXF0Q" "https://www.youtube.com/watch?v=s_eViPLUngU" "https://www.youtube.com/watch?v=pq9UElSw8nw" "https://www.youtube.com/watch?v=KyYYZuFgL9Q" "https://www.youtube.com/watch?v=EtCb452j3ZU" "https://www.youtube.com/watch?v=s60_MRfayVk" "https://www.youtube.com/watch?v=NkCOfh9fgrw" "https://www.youtube.com/watch?v=ez1iu-zx7eE" "https://www.youtube.com/watch?v=QloMdg2bapw" "https://www.youtube.com/watch?v=H6I82aGarGs" #dancemonkey tones and i  tones& i  Tones and I  Tones & I  Dance Monkey   dance monkey  and some.
mpv ~/musicilove/dance/* --shuffle
end

function bucky
echo "“We should do away with the absolutely specious notion that everybody has to earn a living. It is a fact today that one in ten thousand of us can make a technological breakthrough capable of supporting all the rest. The youth of today are absolutely right in recognizing this nonsense of earning a living. We keep inventing jobs because of this false idea that everybody has to be employed at some kind of drudgery because, according to Malthusian Darwinian theory he must justify his right to exist. So we have inspectors of inspectors and people making instruments for inspectors to inspect inspectors. The true business of people should be to go back to school and think about whatever it was they were thinking about before somebody came along and told them they had to earn a living.” ~ Buckminster Fuller" | lolcat
#add 
# if bucky.wav ; mpv bucky.wav ; else ...
flite -voice "“We should do away with the absolutely specious notion that everybody has to earn a living. It is a fact today that one in ten thousand of us can make a technological breakthrough capable of supporting all the rest. The youth of today are absolutely right in recognizing this nonsense of earning a living. We keep inventing jobs because of this false idea that everybody has to be employed at some kind of drudgery because, according to Malthusian Darwinian theory he must justify his right to exist. So we have inspectors of inspectors and people making instruments for inspectors to inspect inspectors. The true business of people should be to go back to school and think about whatever it was they were thinking about before somebody came along and told them they had to earn a living.” ~ Buckminster Fuller" -o bucky.wav ; mpv bucky.wav
end

function clownworld
echo "“When you wake up in the morning, tell yourself: The people I deal with today will be meddling, ungrateful, arrogant, dishonest, jealous, and surly. They are like this because they can’t tell good from evil. But I have seen the beauty of good, and the ugliness of evil, and have recognized that the wrongdoer has a nature related to my own—not of the same blood or birth, but the same mind, and possessing a share of the divine. And so none of them can hurt me. No-one can implicate me in ugliness. Nor can I feel angry at my relative, or hate them. We were born to work together like feet, hands, and eyes, like the two rows of teeth, upper and lower. To obstruct each other is unnatural. To feel anger at someone, to turn your back on them: these are obstructions.” -- Marcus Aurelius, Meditations, 2.1"
end

#idea got from https://www.youtube.com/watch?v=KL29jcWu-1E
#alias teee tee -a
function teee
    tee -a
end
### IDK IF DAT WORKS!    ... :3   (no typos?   no need $argv? $1? ...)  it okay?  fish okay at least?

function breathe
    mpv ~/images/gifs/3secbreathcounterclock.gif --loop
end

#    reminder suggestion
#
## perhaps   [[[EDIT:  "perhaps" indeed.  if wanting break up the config to multi-file mess!]]]
## move all the bedrock stuff 
## out to separate shareable  
##    .bedrock.fish file           <- already started doing.
## and reference it from here.     <- yet to do.
#
#### (not important(yet):then later maybe even shimmy a clever clone link thingy for its own repo)

#moveme
function jobdone
    flite -voice awb -t "job done.  this will do fine.  okay enough.  ken whit?  job done." -o ken.wav ; mpv ken.wav ; rm ken.wav
end

#move me
function clearweather
    clear ; weather
end

alias cw clearweather

#move me
function searx
    #    links "https://searx.neocities.org"
    links "https://searx.neocities.org/nojs.html"
end
#move me
function duck
    links "https://lite.duckduckgo.com"
end
function startpage
    links "https://startpage.com"
end

#move me
# a CPT section!   because where else would you have your package manager configured but in your ~/.profile or wherever in your shell config.  :3  okay.  :)
#idk what i'm doing btw.  i looked up the carbslinux cpt docs... reading through, up to 3.2, environment variables... so i should set these myself since they're not set?   ... where do i set it?   ima take wild guesses at where's sensible.
#CPT_PATH:/bedrock/strata/carbs/var/db/cpt #???  i guess???  is that right?
set CPT_PATH /bedrock/strata/carbs/var/db/cpt #???  i guess???  is that right?
#set CPT_PATH /bedrock/strata/carbs/var/db/cpt /home/digit/gittings #? ? ?! right?

#move me
function retop #i made this because the bedrock fork of htop accumulates >1G swap.
    timeout 24h htop -d 80 ; sleep 8 ; retop
end

function killscreensaver
    xset s off ; xset -dpms
end

function mendcursor
    #just to help prevent xscreensaver taking it away again
    xset s off ; xset -dpms

    #have a go, just in case, may mend with just...
    xsetroot -cursor_name left_ptr
    #xsetroot -cursor_name right_ptr
    
    #and then maybe...
    sudo modprobe -r psmouse
    sudo modprobe psmouse
end

#and in case you forget you called that^ "mendcursor"
alias cursormend mendcursor
alias mendmouse mendcursor
alias mousemend mendcursor

# mend keyboard baclight led off on 
function keyboard-backlight-off
dbus-send --system --type=method_call  --dest="org.freedesktop.UPower" "/org/freedesktop/UPower/KbdBacklight" "org.freedesktop.UPower.KbdBacklight.SetBrightness" int32:0
end
function keyboard-backlight-on
dbus-send --system --type=method_call  --dest="org.freedesktop.UPower" "/org/freedesktop/UPower/KbdBacklight" "org.freedesktop.UPower.KbdBacklight.SetBrightness" int32:1
end


#do me.
# s|https://www.youtube.com/watch?v=|https://invidio.us/watch?v=|
#for all my yt scripts.  or at least duplicate them.
## or just s|youtube|yewtube| ?   or others?
##
#
### or make a script that does the sedit in the command
#
## mpv (in $argv ; sed s|youtube|yewtube| ; end) ... something like that?  lol. :D  not bad for a rash pseudocode poke.  

##############v ok, i may have gone slightly mental, with these colours. v######################

#fish colours
#https://fishshell.com/docs/current/interactive.html#color

###
# set fish_color_normal #default color

###
#set fish_color_command blue #commands like echo
#set fish_color_command 33EE00 -r #commands like echo
#set fish_color_command yellow #commands like echo
set fish_color_command brgreen -r #commands like echo

# set fish_color_keyword # keywords like if - this falls back on the command color if unset
set fish_color_keyword green # keywords like if - this falls back on the command color if unset

###
# set fish_color_quote # quoted text like "abc"
#set fish_color_quote yellow # quoted text like "abc"

set fish_color_quote white # quoted text like "abc"

# set fish_color_redirection # IO redirections like >/dev/null
set fish_color_redirection blue # IO redirections like >/dev/null

# set fish_color_end # process separators like ';' and '&'

set fish_color_end brwhite # process separators like ';' and '&'

# set fish_color_error # syntax errors
set fish_color_error 00FF00 # syntax errors

###
# set fish_color_param # ordinary command parameters
#set fish_color_param BBEE33 -r # ordinary command parameters
#set fish_color_param brblack -r # ordinary command parameters
#set fish_color_param brcyan # ordinary command parameters
set fish_color_param brcyan -r # ordinary command parameters
#set fish_color_param cyan -r # ordinary command parameters

# set fish_color_comment # comments like '# important'
set fish_color_comment brred # comments like '# important'

# set fish_color_selection # selected text in vi visual mode
set fish_color_selection brgreen -r # selected text in vi visual mode

# set fish_color_operator # parameter expansion operators like '*' and '~'
set fish_color_operator bryellow # parameter expansion operators like '*' and '~'

# set fish_color_escape # character escapes like 'n' and 'x70'
set fish_color_escape brbrlue # character escapes like 'n' and 'x70'

# set fish_color_autosuggestion # autosuggestions (the proposed rest of a command)
set fish_color_autosuggestion brmagenta # autosuggestions (the proposed rest of a command)

# set fish_color_cwd # the current working directory in the default prompt
set fish_color_cwd brcyan # the current working directory in the default prompt

# set fish_color_user # the username in the default prompt
#test3commentoutwhite 
#set fish_color_user brwhite # the username in the default prompt

# set fish_color_host # the hostname in the default prompt
set fish_color_host yellow -r # the hostname in the default prompt

# set fish_color_host_remote # the hostname in the default prompt for remote sessions (like ssh)
set fish_color_host_remote bryellow -r # the hostname in the default prompt for remote sessions (like ssh)

# set fish_color_cancel # the '^C' indicator on a canceled command
set fish_color_cancel magenta -r # the '^C' indicator on a canceled command

# set fish_color_search_match # history search matches and selected pager items (background only)
set fish_color_search_match brblue -r # history search matches and selected pager items (background only)

##############^ ok, i may have gone slightly mental, with these colours. ^######################
##############^ now to clean up that hasty mess, and make it make sense. ^######################
### and how come on st-006-067 and st-006-068 have media files show up white??  ...
# ... gonna comment out those three whites incrementally to see if any of them are causing it...
# tests
# 1 
# 2
# 3 


function salve
    mpv ~/Music/* --shuffle
end

function salve1
    cd ~/Music
    mpv 417\ Hz\ ❯\ CLEANSE\ ALL\ THAT\ TRAPPED\ NEGATIVE\ ENERGY\ from\ the\ Past\ ❯\ Solfeggio\ Frequency\ Music-yQ4MnNIhqEI.opus 741\ Hz\ ❯\ Spiritual\ Detox\ ❯\ Remove\ Toxins\ \&\ Negative\ Thoughts\ ❯\ Mandala\ Meditation\ Music-yKj_OBus98A.opus Body\ Restoration\ _\ Healing\ \&\ Strengthening\ of\ Bones\ _\ Fast\ Recovery\ Binaural\ Beats-YTykFImbPMs.m4a Heal\ Damaged\ Brain\ Cells\ _\ Nerve\ Regeneration\ \&\ Brain\ Cells\ Regeneration\ _\ Healing\ Binaural\ Beats-zvA0NGl6_l4.opus Manifest\ Healing\ \(741\ Hz\)\ -\ Whole\ Body\ Regeneration\ -\ Accelerated\ Healing\ -\ Binaural\ Beats-Gy1AwhHv70M.opus Now\ Ends\ The\ Beginning-XR76_HJL6uQ.opus Boards\ of\ Canada\ -\ Tomorrow\'s\ Harvest\ \(2013\)\ -\ Full\ Album-mkYKF5hQQ6M.opus Now\ Ends\ The\ Beginning-XR76_HJL6uQ.opus
end
alias healing1 salve1

function tones
mpv /home/digit/musicilove/dance/Tones\ and\ I\ -\ Dance\ Monkey\ \(Memorylane\ Bootleg\ Mix\)-y_WRatOMumk.m4a
end

function escapekit
stopnicotine
stopsmoking
startbreathing
end

#shrug
function shrug
    echo "¯\_(ツ)_/¯"
end


function startbreathing
#    mpv "http://ks392457.kimsufi.com/stuff/allencarrseasyway/*"
#    mpv "http://ks392457.kimsufi.com/stuff/ac/*"
mpv ~/Downloads/ac
mpv ~/Downloads/Allen\ Carr\'s\ -\ The\ Easy\ Way\ To\ Stop\ Smoking\ AudioBook/
end

alias allencarr startbreathing
alias easyway startbreathing
alias ac startbreathing

function stopnicotine
#mpvm "https://youtu.be/84nKbQKd-b0"
mpsm "allen carr stop smoking audiobook"
stopnicotine
end

function stopsmoking
mpvm "https://youtu.be/4AuBYCJnHfQ" "https://youtu.be/0TL2Vh7goJc" "https://youtu.be/AcySUtMkpbY"
mpsm "allen carr stop smoking audiobook"
end

#idk if this should be near start, or end... muh alphabet aliases!  n-n
#source ~/bin/alphabet-aliases.fish
#or if shud have it in separate file at all... methinks mibi slowing down fish startup

function helpback
hsetroot -solid "#381919" -center ~/Documents/digboxbinds.png
end

#omigosh more cruft added to the start of my fish config.  where oh where is the "start"... and will i ever get this all tidy?

#i didnt like having to choose not to use bedrock.  glad to be back.  trying to respect choice of friends/family to not hear about it loads.  lol.  :)  "gosh i love bedrock" & "so glad to be back on bedrock" 30 times a day's such a bore.

## surf astro
function surf-astro-000
    surf "https://alabe.com/freechart/default.asp"
end

function surf-astro-001
    surf "https://alabe.com/cgi-bin/chart/astrobot.cgi?INPUT1=Digit&INPUT2=&GENDER=Male&MONTH=01&DAY=22&YEAR=1982&HOUR=9&MINUTE=55&AMPM=PM&TOWN=Kirkwall&COUNTRY=UK&STATE=&INPUT9=&Submit=Submit"
end

## surf weather
function surf-weather
    surf "https://earth.nullschool.net/#current/wind/surface/level/orthographic=-7.02,58.87,3196"
end

function surf-weather0
    surf "https://darksky.net/forecast/58.9769,-2.9911/us12/en"
end


function surf-tides
    surf "https://tidetimes.org.uk/kirkwall-tide-times"
end

alias tides surf-tides
alias tide-times surf-tides
alias tide surf-tides
alias tidetimes surf-tides

##
function surf-search
    surf "https://lite.duckduckgo.com/lite/?q=$argv"
end

alias ss surf-search 
alias websearch surf-search
alias search surf-search
alias ws surf-search 
alias s surf-search

function surf-search-qwant
    surf "https://www.qwant.com/?q=$argv"
end

function surf-search-ddg
    surf "https://lite.duckduckgo.com/lite/?q=$argv"
end

function surf-search-sp
    surf "https://www.startpage.com/do/search?q=$argv"
end

###meditations
function meditation-7breathmeditaiton
    flite -t "breathe in.  breathe in to your root chakra, softly filling.  And relaxing on exhale."
    flite -t "breathe in.  breathe in to your sacral chakra, softly filling.  And relaxing on exhale."
    flite -t "breathe in.  breathe in to your solar chakra, softly filling.  And relaxing on exhale."
    flite -t "breathe in.  breathe in to your heart chakra, softly filling.  And relaxing on exhale."
    flite -t "breathe in.  breathe in to your throat chakra, softly filling.  And relaxing on exhale."
    flite -t "breathe in.  breathe in to your mind chakra, softly filling.  And relaxing on exhale."
    flite -t "breathe in.  breathe in to your spirit chakra, softly filling.  And relaxing on exhale."
    flite -t "breathe in to your fingers and toes, softly filling your whole body.  And relax on exhale."
end

###thunderbrowser ... move me to a new webby section
# " to me, death and rebirth go hand in hand with gratitude and generosity " --thunder (from #spiritscience)
function thunderbrowser
    wget --save-headers --user-agent='Mozilla/5.0 (Windows NT 10.0; rv:70.0) Gecko/20100101 Firefox/70.0' -q -c -O - 'https://example.com/' | tee -a '/home/digit/.txt/20210115-015359.html' | sed '/^HTTP\/1\./, /^^M$/d' | lynx -stdin -dump -force_html -image_links | less
end

### colourtest-16c
function colourtest-16c
    #    unbuffer colortest-16 | tail -n 17
    unbuffered colortest-16 | tail -n 17
end

#alias colortest-16c colourtest-16c

## sleeptv
function sleeptv
    #idk why this wont play with a path, but ok... looks like i gotta cd in to the dir first.  :/
### wat?^  noh, surely i was just typo'ing or something, no?  nope, seems not.  wtf.  idk.
    #    timeout 90m mpv --shuffle --playlist=~/cinema/sleeptvlist
#    cd ~/cinema
    #    timeout 90m mpv --shuffle --playlist=sleeptvlist
    cd ~/cinema/_Comedy
    timeout 72m mpv --shuffle --playlist=bedtime.playlist
end

## time to remake the grand sleepery... cept i'm too sleepy to chain all the sleep things together just now and so instead shall put this windbagging comment about it (to remind my spritely awake self here to do it) and will simply watch sleeptv this time.    #20210107 the day my operating system drive died at the same time as one of those inexplicable hangs that need manual rebooting.
# it'll include something like sleeptv ; sleepytime ; sleeper ; sleepkit ;
# or something like  sleeptv ; sleepwise ; sleepytime ; sleeper ; sleepkit ; sleep 3h ; radiodrone

# sleepall
function sleepall000
    sleeptv ; sleepwise ; sleepytime ; sleeper ; sleepkit ; sleep 3h ; radiodrone
end

function sleepall001
    sleeptv ; sleepwise ; sleepytime ; sleeper ; sleepkit 
end


alias sleepall sleepall001 

#peem
function peem
    #peem, the name and default search and install command of digit's new package manager alias/interface wrapper notion.
    #by default, search, but extended version will start to install it if it's the one obvious thing that's not installed, unless cancelled in a couple seconds.
    #so on this os at time of writing, the simple version is just
    apt-cache search $argv
    #if i did my fish correctly.
    #but peem would properly add a check to see if need of an update if the list was stale, and other package manager specific sprucings.
    #peem's a lazy easy one stop command.  there's no intermediate "install", "search", "remove", "update" commands, as peem will interpret and toggle as needs.  the user can cancel to say no if a toggle about to proceed is wrong.     .^\
    #so yeah... i'll get coding that... in pseudocode or real fishshellscript{[(is that the correct terminology?)]`>  soon...
    #that'll be interesting in a bedrocky sort of way.
end


# dunebongs
function dunebong-dry
#function dunebong    
    dunebong-text ; toilet -w 80 -f small (dunebong-text) ; dunebong-text | lolcat ; dunebong-wise
#    dunebong-text ;and dunebong-say
end

#function dunebong-morelolcattest
function dunebong
    dunebong-text ; toilet -w 80 -f small (dunebong-text) | lolcat ; dunebong-text | lolcat ; dunebong-wise
#    dunebong-text ;and dunebong-say
end

function dunebong-text
    echo " It is by will alone I set my mind in motion. It is by the smoke of cannabis that thoughts acquire depth, the eyes acquire blood, the blood becomes a warning. It is by will alone I set my mind in motion."
end

function dunebong-say
    flite -t " It is by will alone I set my mind in motion. It is by the smoke of cannabis that thoughts acquire depth, the eyes acquire blood, the blood becomes a warning. It is by will alone I set my mind in motion."
end #gonna redo that, with toilet/figlet, and lolcat, and sleep, to stagger it.   ... might even try slip in flite along with.

#made this version of dunebong-say since am on a system that borks on flite if sound system's used by something else, which usually is, so usually wouldnt play.
function dunebong-wise
    if test -f ~/sounds/dunebong-say.wav
	mpv ~/sounds/dunebong-say.wav
    else
	flite -t " It is by will alone I set my mind in motion. It is by the smoke of cannabis that thoughts acquire depth, the eyes acquire blood, the blood becomes a warning. It is by will alone I set my mind in motion." -o ~/sounds/dunebong-say.wav
	mpv ~/sounds/dunebong-say.wav
    end
end


#
function digmenu
dmenu_run -l 19 -b -i -nb "#000" -fn "merg" -nf "#fda" -sb "#EB3" -sf "#E3B"
end
#moveme too
#do me.
# s|https://www.youtube.com/watch?v=|https://invidio.us/watch?v=|
#for all my yt scripts.  or at least duplicate them.
#and/or make youtube-dl and mpv aliased to sedit out the youtubery automagically.  and/or at least make an alt command to do that first.  there's a fun geeking project to settle into the present with.  :)
# and make a rofi that's similar

#moveme
function checkit
    flite -t "check it."
end

#ugh, gotta change all my mpv aliases since --this format is deprecated and dangerous (so they say) and needs be --this=format now.

#attempts (move this section down somewhere sensible) ~ to make urls "Just Work" without "quotation" nor /escaping
#this thnx from vifon in #fish on irc.freenode.net
alias thisshudnbanaliasthoshudit "xsel | xargs -n1 -I'{}' do-stuff --some-arg='{}' --some-other-arg"
#but added it (and called it thisshudnbanaliasthoshudit) like that in haste to take note just now anyway.
##  oh shit, im gonna paste the whole bloody chat in here messin up my fish config. lol
##
##[2019-01-21 06:17:21] <Digit> is there a way to have urls be pasteable n interpreted without quotes nor warnings?  is there somewhere i could add a simple "if starts http:// or https:// then autoquote it until the next space"?  
##[2019-01-21 15:18:16] <krobelus> toothe: use `fg` (or `bg`)
##[2019-01-21 15:21:08] <krobelus> Digit: not really, but I don't think valid URLs have quotes.. the only character that is in the way is ?, though that is deprecated and will hopefully be removed at some point
##[2019-01-21 15:21:35] <krobelus> Digit: you can always do `your-command (read)` and then just paste the url
##[2019-01-21 17:42:15] <gregf> When I start to type out a command fish offers suggestions for completion. What's the key combo to accept the current suggestion?
##[2019-01-21 17:45:38] <vifon> gregf: Right arrow or Ctrl+f.
##[2019-01-21 23:52:22] <Digit> not sure my query was interpreted as intended.  krobelus: valid urls dont have quotes in them, yes.  but i'm talking about the need to quote urls.  e.g. cant just middle-click paste a video url after mpv, hit enter, and go.  needs " around the url.  4 extra keypresses that get irksome around where otherwise just a middle click & enter would do.  the only thing i miss from bash. n_n
##[2019-01-21 23:54:53] <vifon> Digit: Well, you can use '' to cut these 4 keypresses in half. ;)
##[2019-01-21 23:55:19] <Digit> ... ?  i dont get it
##[2019-01-21 23:55:34] <vifon> You need to press Shift for ".
##[2019-01-21 23:56:13] <vifon> Well, in Bash it would mysteriously stop working if for some reason you'd have the file named like the URL but with actual characters in place of ?.
##[2019-01-21 23:56:26] <vifon> Personally I don't like the ? and * handling in Bash.
##[2019-01-21 23:56:41] <vifon> Especially *. Working until it isn't.
##[2019-01-21 23:56:47] <Digit> oh, right, yes, of course.   is ' dependable for urls?  :3   well, that's better.  halfed the infinitely more keypresses than i want in that area.  n_n
##[2019-01-21 23:57:01] <vifon> I'd expect it to be, yes.
##[2019-01-21 23:57:30] <vifon> The hack with (read) looks nice actually.
##[2019-01-21 23:57:56] <Digit> i didnt quite grok what that was about, how to implement.
##[2019-01-21 23:58:31] <vifon> You enter "mpv (read)", press enter and then paste. Possible with Enter and C-d afterwards.
##[2019-01-21 23:58:40] <vifon> It essentially reads from stdin.
##[2019-01-21 23:58:58] <vifon> *Possibly
##[2019-01-21 23:59:04] <vifon> No, no C-d necessary.
##[2019-01-21 23:59:07] <Digit> yeah, so, once mpv's aliased such, it's replaceing the 4 (or 2) extra keypresses with 3.  
##[2019-01-21 23:59:23] <Digit> no C-d, then just 2?  :)
##[2019-01-21 23:59:30] <vifon> You just have one additional enter.
##[2019-01-21 23:59:34] <Digit> well, just an extra enter, yeah
##[2019-01-21 23:59:50] <vifon> That looks pretty reasonable.
##[2019-01-22 00:00:11] <vifon> Even better, you could use "mpv (xsel)
##[2019-01-22 00:00:14] <vifon> "
##[2019-01-22 00:00:26] <vifon> No pasting and no additional enter.
##[2019-01-22 00:00:57] <vifon> Basically the XY Problem. :)
##[2019-01-22 00:00:58] <Digit> ... then... ... that's even faster.     if i understand correctly... that would initiate right upon middle click?  :O
##[2019-01-22 00:01:10] <vifon> No middle click necessary.
##[2019-01-22 00:01:25] <Digit> not even!  :O  :D
##[2019-01-22 00:01:28] <vifon> You just need to select/copy the URL and run this command.
##[2019-01-22 00:01:31] <Digit> oh, but yeah, still needs 1 enter
##[2019-01-22 00:01:36] <Digit> nice
##[2019-01-22 00:01:39] <vifon> Well, you always need one.
##[2019-01-22 00:06:15] <Digit> n that'd work great for 1 url.  but not if i had a chain of them.  right?
##[2019-01-22 00:07:07] <Digit> yeah, i at first misinterpret the (xsel) as middle-click would paste and initiate.
##[2019-01-22 00:07:34] <vifon> Digit: If you want each one of them as a separate argument, it'll work if they are newline-separated in your clipboard.
##[2019-01-22 00:07:58] * Digit nods
##[2019-01-22 00:08:47] <vifon> If you want more control, you could use "xsel | xargs -n1 -I'{}' do-stuff --some-arg='{}' --some-other-arg"
##[2019-01-22 04:00:29] <Digit> i still think my dream of function in my .fishrc that allows urls to be invisably/auto quoted/escaped is my optimal target (as expressed^ "if starts http:// or https:// then autoquote it until the next space").  but that("xsel | xargs -n1 -I'{}' do-stuff --some-arg='{}' --some-other-arg")'s a really cool aproach in this area too.  *enthused*
##[2019-01-22 04:10:25] <vifon> Digit: You may want to add sponge(1) from moreutils to the pipeline so that clipboard won't change during the processing. I've seen strange things happen when piping from xsel(1), though I expect it to be "atomic" once the reading begins.
##[2019-01-22 00:08:47] <vifon> If you want more control, you could use "xsel | xargs -n1 -I'{}' do-stuff --some-arg='{}' --some-other-arg"
## [2019-01-22 04:10:25] <vifon> Digit: You may want to add sponge(1) from moreutils to the pipeline so that clipboard won't change during the processing. I've seen strange things happen when piping from xsel(1), though I expect it to be "atomic" once the reading begins.

#because you really want that bash feature parity of being able to just paste a url and go.  no fangled quotation marks necessary!  it's a must have feature.  so it's worth mussing up the config with a big chat paste.  that'll help remind and motivate and guide and inspire and clue.  it's one of the larger inconveniences offputting a larger potential userbase of fish users.  n more eyes, make bugs more shallow. ;D

###
#making aliases(?) for locations like where's huj at now:
#alias huj "~/hujscue/" #### might wanna recheck if wanna bother doing that... works fine so long as not mounting old huj on huj.   ###########nohhhhh!####
## woah woah woah.  is that how i ended up getting muddled crap in hujscue instead of huj3?  
alias huj "~/huj3/" #### might wanna recheck if wanna bother doing that... works fine so long as not mounting old huj on huj.   !!!*ahem*!!!
#huj4 next?
#huj3 is huj5 now.  huj4 is the new hujscue.  so huj3's the active forward live drive.  just backup to huj4.
#i should write what command to do that here...  a rsync or a cp,
#cp -p? huj3/* huj4/
#rsync -??? --ignore-existing huj3/* huj4/
#
#yeah, many months later, 20200708, and still havent done that.  maybe have that be "the task" of the day.  accomplish specifically that.
#
# what's the huj bkp command that preserves the dates n perms n everything...?

#lolcat lc
alias lc lolcat

#changed this from mapscii to mapscii-telnet
#because i did sudo npm install -g mapscii
#to get mapscii installed locally.  :)
function mapscii-telnet
    telnet mapscii.me
end

#this was just a whim from #gentoo-chat for a laugh
#alias chroot 'champagne-chute'

# oh look... it's the "start" of my config.   .... LOTS to tidy^
####################################
#                                  #
# WELCOME!  TO Digit'S FISH CONFIG #
#                                  #
####################################
#moveme ~things added in haste here:

####################################
#                                  #
# during an adventure, this config #
# is created, from prior ~/.bashrc #
# and will survive FOREVAAAAAAAAH! #
#                                  #
####################################
#       ##################         #
####################################
#                                  #
######  expect broken shit  ######## # especially now using fish 3.  
#                                  #
####################################
#       ##################         #
####################################
#                                  #
# type help.  /usr/share/doc/fish/ #
#                                  #
# alias foo "fapfaps -bar '~/bar'" #
#                                  #
# function foobar                  #
# bar; and fapfaps; or foo         #   
# end                              #
#                                  #
####################################

#function fish_greeting
#  status --is-login
#  if [ $status != 0 ] 
#    dynmotd
#  end 
#end

# simplified... too simple?
# see /usr/local/bin/dynmotd
###  if status --is-login; dynmotd; end
###  if status --is-login; cat /etc/motd; end 
#where did i ever get this from... there's no dynmotd in void.
#  if status --is-login; dynmotd; end 

#fish greeting
#cat /etc/motd

#idea... (besides making ~/digit.org.d/


function marcusaurelius_greeting_original
echo "   “When you wake up in the morning, tell yourself: The people I deal with today will be meddling, ungrateful, arrogant, dishonest, jealous, and surly. They are like this because they can’t tell good from evil. But I have seen the beauty of good, and the ugliness of evil, and have recognized that the wrongdoer has a nature related to my own—not of the same blood or birth, but the same mind, and possessing a share of the divine. And so none of them can hurt me. No-one can implicate me in ugliness. Nor can I feel angry at my relative, or hate them. We were born to work together like feet, hands, and eyes, like the two rows of teeth, upper and lower. To obstruct each other is unnatural. To feel anger at someone, to turn your back on them: these are obstructions.”
    Marcus Aurelius, Meditations, 2.1"
end

function marcusaurelius_greeting0
    set_color -b black ; set_color "9500ff"
    echo "   “When you wake up in the morning, tell yourself:
The people I deal with today will be meddling, ungrateful,
arrogant, dishonest, jealous, and surly. They are like this
because they can’t tell good from evil. But I have seen the
beauty of good, and the ugliness of evil, and have recognized
that the wrongdoer has a nature related to my own—not of the
same blood or birth, but the same mind, and possessing a share
of the divine. And so none of them can hurt me. No-one can
implicate me in ugliness. Nor can I feel angry at my relative,
or hate them. We were born to work together like feet, hands,
and eyes, like the two rows of teeth, upper and lower.
To obstruct each other is unnatural. To feel anger at someone,
to turn your back on them: these are obstructions.”
    Marcus Aurelius, Meditations, 2.1"
end


function marcusaurelius_greeting1
    #set_color -b black
    #set_color "9500ff"
    set_color "2b92be"
    echo "            “When you wake up in the morning, tell yourself:
           The people I deal with today will be meddling, ungrateful,
          arrogant, dishonest, jealous, and surly. They are like this
          because they can’t tell good from evil. But I have seen the
         beauty of good, and the ugliness of evil, and have recognized
          that the wrongdoer has a nature related to my own—not of the
         same blood or birth, but the same mind, and possessing a share
          of the divine. And so none of them can hurt me. No-one can
         implicate me in ugliness. Nor can I feel angry at my relative,
         or hate them. We were born to work together like feet, hands,
            and eyes, like the two rows of teeth, upper and lower.
         To obstruct each other is unnatural. To feel anger at someone,
               to turn your back on them: these are obstructions.”
                    -- Marcus Aurelius, Meditations, 2.1"
end
#1234567890123456789012345678901234567890123456789012345678901234567890123456789

#reiki
function reikireminder-original
#function reikireminder
    echo "Just for today, I will not anger."
    echo "Just for today, I will not worry."
    echo "Just for today, I will be grateful for all my blessings."
    echo "Just for today, I will be kind to all beings."
    echo "Just for today, I will be honest in all my dealings."
end

function reikireminder-remake #for 80 char width ~ left aligned.
#function reikireminder    
#    echo "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
    echo "Just for today, I will not anger.                                               "
    echo "Just for today, I will not worry.                                               "
    echo "Just for today, I will be grateful for all my blessings.                        "
    echo "Just for today, I will be kind to all beings.                                   "
    echo "Just for today, I will be honest in all my dealings.                            "
end

#function reikireminder-remake-centered #for 80 char width ~ center aligned
function reikireminder
#        #1234567890123456789012345678901234567890
    echo "                      Just for today, I will not anger.                         "
    echo "                      Just for today, I will not worry.                         "
    echo "           Just for today, I will be grateful for all my blessings.             "
    echo "                Just for today, I will be kind to all beings.                   "
    echo "             Just for today, I will be honest in all my dealings.               "
end

#fish greeting fo rlz (test disabling reikireminder, 
#function fish_greeting
#function morning_greeting
function hefty_greeting
    sleep 1
    marcusaurelius_greeting1
    set_color -b ff8800 ; set_color "9500ff" ; reikireminder ; set_color -b black ; echo
    #set_color -b ffdd00 ; reikireminder # :)  it works.  :)  lol.
    #reikireminder | lolcat -F 0.4 # presumably this was what was causing the lags and loads on starting new terminals so often.
    #snarfsnarfnyukyuk, lets have our fish_greeting have hal9000 go "hello dave"
    # ... no, yeah, ok, disabled, at least until i learn how to background it, and not have it hang while.  ... and i'll make it an audio file for mpv or aplay or something to play, rather than flite, which currently fights for audio driver, and thus does not work if something else is already playing.
    #    hellodave  
#and why not?  :)   mend!  :)  mend stonks.  :)
    #mend
    #mend
    #set_color -b "381957" ; mend #-~ nope... hrm, cos mend's setting it itself...
    #    set_color -b "955776" #nice
    set_color -b black
    mend
    set_color -b "955776" #nice
    #and beyond that mend, i've just made...
#    set_color bryellow ; echo "                   _                    _" ; set_color brgreen ; echo " _ __  ___ _ _  __| |_ __ ____ _ _ _ __| |___" ; set_color cyan ; echo "| '  \/ -_) ' \/ _` \ V  V / _` | '_/ _` (_-<" ; set_color blue ; echo "|_|_|_\___|_||_\__,_|\_/\_/\__,_|_| \__,_/__/"
    #alternatively
    set_color bryellow ; echo "                   _                    _" ; set_color brred ; echo " _ __  ___ _ _  __| |_ __ ____ _ _ _ __| |___" ; set_color magenta ; echo "| '  \/ -_) ' \/ _` \ V  V / _` | '_/ _` (_-<" ; set_color blue ; echo "|_|_|_\___|_||_\__,_|\_/\_/\__,_|_| \__,_/__/"
    #or the original two versions i had when originally "just made..."^before i snuck those two in^
#    set_color ffdd00 ; echo "                   _                    _" ; set_color ff8800 ; echo " _ __  ___ _ _  __| |_ __ ____ _ _ _ __| |___" ; set_color dd5588 ; echo "| '  \/ -_) ' \/ _` \ V  V / _` | '_/ _` (_-<" ; set_color 997788 ; echo "|_|_|_\___|_||_\__,_|\_/\_/\__,_|_| \__,_/__/"
    #the prior alternative version of it^ set_color fffeee ; echo "                   _                    _" ; set_color ffdd33 ; echo " _ __  ___ _ _  __| |_ __ ____ _ _ _ __| |___" ; set_color ff8822 ; echo "| '  \/ -_) ' \/ _` \ V  V / _` | '_/ _` (_-<" ; set_color ee3333 ; echo "|_|_|_\___|_||_\__,_|\_/\_/\__,_|_| \__,_/__/"

    #clear #why (maybe fine with an "if login")
    #cat /etc/motd #noh
    #thanks krobelus
#yeah, but it's annoying when wanting to see scrollback and switching to fish.  disabling.  just make the keybind ok.
#    string repeat -n (math "$LINES - 2") \n #bind to ctrl+shift+l
    # and sorry not sorry, lets have this too!  lol.  :)
    #tail -n 14 /home/digit/isthisnotareasonableplacetopark | lolcat
    #tail -n 14 /home/digit/isthisnotareasonableplacetopark # | lolcat
    #set_color -b 8800ff ; tail -n 14 /home/digit/isthisnotareasonableplacetopark | lolcat
    #    set_color -b "571995" ; tail -n 14 /home/digit/isthisnotareasonableplacetopark | lolcat #nice
    set_color -b "571995" ; tail -n 14 /home/digit/isthisnotareasonableplacetopark # removed the lolcat, because it was just adding load and lag.
    #set_color -b 9900ff ; tail -n 14 /home/digit/isthisnotareasonableplacetopark # | lolcat    
    set_color -b black
    echo
#plain
#    bedrock-ascii
#stonks

    bedrock-ascii-shadey
#lolcat 
    #    bedrock-ascii | lolcat -v 3 -h 0.8 -r
    echo "                     Bedrock Linux"
    echo
#    neofetch
    #neofetches
end

function day_greeting
    bedrock-ascii-shadey
#    bedrock_ascii    
end

# adding all these sleeps to see if that reduces the load spikes.
function morning_greeting
    #    marcusaurelius_greeting
    #    echo morning
    #    fish_greeting
    sleep 1
    hefty_greeting
    sleep 1
    touch ~/(date +"%A")
    sleep 1
    #    rmyesterdays
    rmyesterday
    sleep 1
end

function rmyesterday
    sleep 1
    if test -f ~/Monday
	if test -f ~/Sunday
	    rm ~/Sunday
	end
    end
    
    if test -f ~/Tuesday
	if test -f ~/Monday
	    rm ~/Monday
	end
    end
    if test -f ~/Wednesday
	if test -f ~/Tuesday
	    rm ~/Tuesday
	end
    end
    if test -f ~/Thursday
	if test -f ~/Wednesday
	    rm ~/Wednesday
	end
    end
    if test -f ~/Friday
	if test -f ~/Thursday
	    rm ~/Thursday
	end
    end
    if test -f ~/Saturday
	if test -f ~/Friday
	    rm ~/Friday
	end
    end
    if test -f ~/Sunday
	if test -f ~/Saturday
	    rm ~/Saturday
	end
    end
    sleep 1
end

function rmyesterdays
    if test -f ~/Monday
	rm ~/Sunday
	rm ~/Saturday
	rm ~/Friday
	rm ~/Thursday
	rm ~/Wednesday
	rm ~/Tuesday
    end
    if test -f ~/Tuesday
	rm ~/Monday
	rm ~/Sunday
	rm ~/Saturday
	rm ~/Friday
	rm ~/Thursday
	rm ~/Wednesday
    end
    if test -f ~/Wednesday
	rm ~/Tuesday
	rm ~/Monday
	rm ~/Sunday
	rm ~/Saturday
	rm ~/Friday
	rm ~/Thursday
    end
    if test -f ~/Thursday
	rm ~/Wednesday
	rm ~/Tuesday
	rm ~/Monday
	rm ~/Sunday
	rm ~/Saturday
	rm ~/Friday
    end
    if test -f ~/Friday
	rm ~/Thursday
	rm ~/Wednesday
	rm ~/Tuesday
	rm ~/Monday
	rm ~/Sunday
	rm ~/Saturday
    end
    if test -f ~/Saturday
	rm ~/Friday
	rm ~/Thursday
	rm ~/Wednesday
	rm ~/Tuesday
	rm ~/Monday
	rm ~/Sunday
    end
    if test -f ~/Sunday
	rm ~/Saturday
	rm ~/Friday
	rm ~/Thursday
	rm ~/Wednesday
	rm ~/Tuesday
	rm ~/Monday
    end
end

#an alternative fish_greeting for when that bloater's bloating still.
#function fish_greeting
function okaytogo
    echo "                        okay to go"
end

function weather
curl wttr.in/"kirkwall"
end


function moreweather
date
curl wttr.in/"kirkwall"
date
sleep 8h
date
moreweather
end

#if terminal 125 characters wide, if terminal 48 lines tall; do weather #curl wttr.in/"kirkwall"
function weatherif 
#    if test (tput lines) -gt 46
	if test (tput cols) -gt 124
	    weather
	end
#    end
end

#  THE REAL ONE   :D :D :D :D   for the stonks.  ;p
function fish_greeting
#    weatherif
    themerock                ### is good n simple and in theme
#time    bedrockascii-shadey ### is good n simple
#ambergris                    ### just the yummy colours, no fat.

#ambergrisquids                    ### just the yummy colours, no fat.

ambergrisquidies             ### haz kernel and bedrock version

#    kaytogo                 ### testing
#    ambergristle            ### yummy colours plus fat.
#    brllistline             ### a glimpse of strata
end

# :) a fish_greeting which differs after first run of day.
function not_fish_greeting # to toggle off this bloater until i figure out how to unbloat its load spikes.
#function fish_greeting #last chance before skipping this, if it still gets bloaty load (over 30 load!)
    sleep 1
    if test -f ~/(date +"%A")
	sleep 1
	day_greeting
    else
	sleep 1
	morning_greeting
    end
end
# have just thought there may be a better way to do this. ^
#   could...
#               use a variable
#                                 rather than a file. 
# so then it doesnt need check the [slow!] hd.

# and the witches hat i just added to greeting,
function witcheshatpark
tail -n 14 isthisnotareasonableplacetopark | lolcat
end

## and here, it needs a couple extra \ to escape the penultimate two lines' penultimate "s  (see the double quotes on the ends of the rim...
#function witcheshat
#    echo "
#                     _;*(=lll>*^-
#                  ;{KRRRRQqkeyuoAG2X2>,
#                *GRRRRR$!`        ``
#              `yRRNNRRQ,
#             `XRRNMNRQH
#             xRRNNBNRRQ\
#            ,RRRNNBNNRQQl
#             sRRRNNBNNRRQg*
#            GgQRRNNNNRRQg2:_
#      ,^\toGRNNNNB@@NNNNNRRRQP1r\".
#:\zoGQRRRRRRNNNNNBMROPS%yyF2oyuuuuv*\"`
#  `,:^!*\\\\r*!;:.
#"
#end
## nope, not even with the backslashes.  too many others to comment out too.
## ~/.config/fish/config.fish (line 508): $! is not a valid variable in fish.
#                *GRRRRR$!`        ``
#                        ^
#from sourcing file ~/.config/fish/config.fish
#        called during startup
#source: Error while reading file “/home/digit/.config/fish/config.fish”
## and now i remember why i parked that ascii in its own file.  XD

#######################################  #######################################
################################################################################
#######bedrock 2020 section... ########  ##
# move me to my own sensible location #  #
# somewhere nice with ascii art #######  ##
#moveme mendme bedrock
#function srsly
#    echo "mendme"
#    sudo strat -r "$arg1" "$argv"
#end
alias srsly "sudo strat -r"

####################################
############  weathery  ############
####################################
alias weather curlwttr

function curlwttr
curl wttr.in/kirkwall
end

function lance
#    cat /home/digit/huj3/DigitsStuff/digitswritings/ascii/lance
    cat /home/digit/ascii/lance
end

###########################################################
################# the st cheating section #################
###########################################################
#for cursor keys n del n things, like when mpv decided cursor keys were impossible key combinations.  ~ even tho i "mended" this already in another couple places, i'm sure this wont hurt to include.  ... kinda.
switch $TERM
    case 'st-*' # suckless' simple terminal
                # Enable keypad, do it once before fish_postexec ever fires
        tput smkx
        function st_smkx --on-event fish_postexec
            tput smkx
        end
        function st_rmkx --on-event fish_preexec
            tput rmkx
        end
end #and yes, menddel2's got that already too bellow.  maybe this is a better way to do it.  should mend more than del, and cover more edge cases.  leaving it in again though.

#totally cheating for st:
# https://git.suckless.org/st/file/FAQ.html
# restores del 
printf '\033[?1h\033=' >/dev/tty
# or
#tput smkx

#wrapped these in a function to call.
function menddel
    printf '\033[?1h\033=' >/dev/tty
end

function menddel2
    tput smkx
end
###########################################################
################# end st cheating section #################
###########################################################

###########################################################
#################  the mushroom section  ##################
###########################################################

function ok
    clear
    lance
    bedrockascii
    echo
end

function asciisemilanceatapsilocybe0
echo "
  n
 / `\\
(___:)
 """"
  ||
  ||
  ))
 //
((
 \\
  ))
  ||
"
end

function asciisemilanceatapsilocybe
echo "
  n
 / `\\
(___:)
 """"
  ||
  ||
  ||
"
end

function lance0
    echo "
      ,.
     J;`.
    iyi.`.
   j?7;. :
  fclu:.` :
 dE2Xvi;. `.
JGL56bhx;.';
4KPY^f:l"`-;
  """l:;-""
     `; \
itz  .' ;
    /'.'
   f .'
   `. \
    `-'
   "
end


###########################################################
#################  end mushroom section  ##################
###########################################################

#######################################################
#################  the fish section  ##################
#######################################################
# fish section ? lol

alias stalefish "source ~/.config/fish/config.fish"
#alias freshfish "source ~/.fishrc"
alias fishfarm "ln -s ~/.config/fish/config.fish ~/.fish"
alias freshfish "source ~/.fish"

#######################################################
#################  end fish section  ##################
#######################################################

#is this right to put this here like this?
#export EDITOR="emacs -nw"
#NO.  XD  that messes up select-editor, /etc/environment, set -xU EDITOR yi, and other methods.  good grief that was painful.
#set -xU EDITOR yi
#^ proper way, issue that on command line, not here in fish config.  :)
#update:
# except ... idk why, but my crontab -e is back to using emacs -nw... wat... where... how!?  not here.
#so i'm setting this here like a cheat again since the other methods are STILL not sticking.  whyyyyy
set -e EDITOR #remove
set -xU EDITOR yi
#and if that doesnt work, try 
#export EDITOR="yi"

function fish_prompt
    #idea20220727: include (*hostname)
    #idea20211014: include a (brl which) 
    #... that's funny, y'know, because, 
    #idea20240223: include a brl list
    echo ""(set_color green)""(date +%Y%m%d)""(set_color brwhite)" "(hostname)""(set_color bryellow)" "(brl which)""(set_color cyan)" $PWD "(set_color FF0)"% "
    #echo ""(set_color green)""(date +%Y%m%d)""(set_color brmagenta)" "(hostname)" "(set_color bryellow)" "(brl which)""(set_color cyan)" $PWD "(set_color FF0)"% "
    #echo ""(set_color green)""(date +%Y%m%d)""(set_color cyan)" $PWD "(set_color FF0)"% "
end

########################
########################
####### aliases ########

function matt
    echo
    echo "https://www.youtube.com/watch?v=uk3A41U0iO4"
    echo
end

function adereth
mpv "https://www.youtube.com/watch?v=uk3A41U0iO4"
end

#see digitclock alias & tarklessclock
#function digitclock
#dclock -bg black -fg orange -led_off "#1f001f" -noutc -fn nztt -noblink -fade -fadeRate 200 -dateup -miltime -nobell
#end

function tarklessclock
dclock -bg "#332414" -fg "#FCAF3E" -led_off "#4D3319" -noutc -fn nztt -noblink -fade -fadeRate 200 -dateup -miltime -nobell -thickness "0.08"
end

alias digitclock tarklessclock

#see digitclockround alias & tarklessclockround
#function digitclockround
#oclock -bg black -fg goldenrod -bd "#421257"
#end

function tarklessclockround
oclock -bg "#332414" -fg "#FCAF3E" -bd "#4D3319"
end

alias digitclockround tarklessclockround

function digiteyes
xeyes -fg "#332414" -outline "#493319" -center "#6B5036"
end

alias tarkeyes digiteyes

function digitwmsun
wmsun -lat 58.81 -lon 2.81
end

##################################
####### mounts n locations #######
alias ovh "ssh digit@ovhtoo"
#alias ovhprox "ssh -C2qTnN -D 8080 digit@ovhtoo -M -S /tmp/digit@ovhtoo:22"
#alias ovhprox "ssh -C2qTnN -D 8080 digit@ks392457.kimsufi.com -M -S /tmp/digit@ovhtoo:22"
alias ovhprox "ssh -C2qTnN -D 8080 digit@ovhtoo -M -S /tmp/digit@ovhtoo:22"
alias ovhtorrents "sshfs ovhtoo:/home/digit/torrents/ /media/x3/torrents/otorrents/"

alias orprox "ssh -C2qTnN -D 8080 198.100.144.49 -M -S /tmp/digit@orsufi:22"
alias ortorrents "sshfs orsufi:/home/digit/rtorrent/ /home/digit/torrents/ortorrents/"
alias othertorrents "sshfs orsufi:/home/digit/rtorrent/ /home/digit/torrents/othertorrents/"


#commented out, because some day, i'm gonna want b for something bedrocky.
#alias b "bash"

#wat... this isnt how this works... just returns "usage: flite_time HH:MM"
#alias fime "flite_time `date +%H:%M`"
#did i mean...
#alias fime "flite_time (date +%H:%M)"
#or something?
#that would work if it were not trying to open the wrong/"default" audio device.
#so, instead, lets just make our own... manually, simpler:
function fime
#    flite -t "the time is now"
    flite -t (date +%H:%M)
end

function fliter
    echo "processing ~/flitings to make ~/flitings.wav"
    flite -voice slt -f ~/flitings -o ~/flitings.wav
    echo "playing ~/flitings.wav in mpv"
    mpv ~/flitings.wav
    echo "done."
    echo "please paste more text over the contents of ~/flitings and re-run this fliter function for next time you want an article read to you"
end

#fish dont want me have &&, but me will, one day.
#alias "&&" "; and"


########################
#### extracts things ###


# easy extract
#function extract
#  if [ -f $1 ] ; then
#      case $1 in
#          *.tar.bz2)   tar xvjf $1    ;;
#          *.tar.gz)    tar xvzf $1    ;;
#          *.bz)        bunzip2 $1     ;;
#          *.bz2)       bunzip2 $1     ;;
#          *.rar)       rar x $1       ;;
#          *.gz)        gunzip $1      ;;
#          *.tar)       tar xvf $1     ;;
#          *.tbz2)      tar xvjf $1    ;;
#          *.tgz)       tar xvzf $1    ;;
#          *.zip)       unzip $1       ;;
#          *.Z)         uncompress $1  ;;
#          *.7z)        7z x $1        ;;
#          *.xz)        tar xvf $1     ;;
#          *)           echo "don't know how to extract #'$1'..." ;;
 #     esac
 # else
#      echo "'$1' is not a valid file!"
#  fi
#end

# type seering
function digit
echo "that's your name you ninnie."
end

#sorter.  to do all those little tasks i keep having to do because i've not put them in startup files for one reason or another.

function sorter
echo "=== background ==="
#feh --bg-scale /home/digit/images/morse.png
#feh --bg-scale ~/images/dsktpbckgrnds/smplbak2i-2hue1a.png
feh --bg-scale ~/images/dsktpbckgrnds/smplbak2i-2hue1a-small.png
#feh --bg-scale ~/images/avatars/freedompoliticalcompass-dropfrominfinitysfe.png
echo "=== mountings ==="
echo "sudo mount /dev/sdc1 /home/digit/sdc1"
sudo mount /dev/sdc1 /home/digit/sdc1 
echo "sshfs ks392457.kimsufi.com:/home/digit/ ~/o3"
sshfs ks392457.kimsufi.com:/home/digit/ ~/o3 
##### 2020 notes, in bedrock now again,
##### sdb9=huj3 sde1=huj4 sdf1=bb3
##### (and huj5 = symlink to huj3 (active) and huj4's hujscue (inactive))
##### check sorter mountings code yet?
df -h
sleep 1
#echo "this went wrong, somehow the sda disapeared, and sdb became sda."
#echo "this is why to use uuid!  :D"
#echo "#echo \"sudo mount /dev/sdb8 /media/sdb8\""
#echo "#sudo mount /dev/sdb8 /media/sdb8"
#echo "so instead, lets try that again (albeit still calling it sdb8 for legacy links)"
#echo "sudo mount -U 4720a175-d3fe-495c-bba1-c7254a8f7920 /media/sdb8"
#sudo mount -U 4720a175-d3fe-495c-bba1-c7254a8f7920 /media/sdb8

#echo
#sleep 1
#echo "REMINDER:   change the rest to UUID-based mounting too if not already."
#sleep 1
#echo "REMINDER:     ... & delete the crufty comments in sorter."
#echo
#sleep 1
#### i really should switch these to use uuid, ffs.  or labels or names.
#huj now changed to hujscue, huj is dying.
#echo sudo mount /dev/sda1 ~/huj
#sudo mount /dev/sda1 ~/huj
#echo "sudo mount /dev/sdb15 ~/hujscue"
#sudo mount /dev/sdb15 ~/hujscue
#hujscue was crampt.   need to find how to safely expand them into one., since they now occupy contiguous space by quirk of chance.
#echo "sudo mount /dev/sde1 ~/huj4"
#sudo mount /dev/sde1 ~/huj4
#cos huj4's the new hujscue, isnt it.
#but you do it with uuid later.  :)

#meep.   gotta get this all shifted to huj5 at some point.   or better yet... TO HUJ!!! (huj, i was just shouting)   to huj, so that it's rolling consistent and i dont hit upon these snags anymore when traversing to new hd ever again.  :3
###echo "sudo mount /dev/sdb9 ~/huj3"

#echo "sudo mount -U 14fd2cbb-2fad-46cb-b853-1b74394cb68d ~/huj3"

#echo "was gonna be sudo mount /dev/sdb9 ~/huj3"
#echo "sudo mount /dev/sdb9 ~/huj5"
###sudo mount /dev/sdb9 ~/huj3

#sudo mount -U 14fd2cbb-2fad-46cb-b853-1b74394cb68d ~/huj3

#sudo mount /dev/sdb9 ~/huj5

#and you'll want your swap drive turned on, surely...
#sudo swapon /dev/sdb3
#and you'll want to change where that is some day.

#echo "sudo swapon -U 82eb4bed-1adc-42ec-9e53-5d87085988d7"
#sudo swapon -U 82eb4bed-1adc-42ec-9e53-5d87085988d7

#sleep 1
#bb3 sometimes sdd1, sometimes sde1, need to do by uuid.
#echo sudo mount /dev/sde1 ~/bb3
#sudo mount /dev/sde1 ~/bb3

#echo "sudo mount -U da62bed0-6d78-44ef-baea-6a29bc84e4b2 ~/bb3 #sde1 or sdd1"
#sudo mount -U da62bed0-6d78-44ef-baea-6a29bc84e4b2 ~/bb3 #sde1 or sdd1

#sleep 1

#echo "sudo mount -U 6aafce0b-0611-47cb-ad5b-4d15ffc0da36 ~/huj4"
#sudo mount -U 6aafce0b-0611-47cb-ad5b-4d15ffc0da36 ~/huj4 #sdh1 that first time with 2 pendrives in at same time... not that this matters much at all.  using uuid.  :3  just nice to know.
#sleep 4

echo "wait for it"
sleep 3
df -h
echo "=== mountings done ==="
echo "=== (actually doing) X windows settings ==="
echo "setxkbmap gb"
setxkbmap gb


echo "disabling touchpad with synclient TouchpadOff=1"
synclient TouchpadOff=1

#function killscreensaver
#    xset s off ; xset -dpms
#end

echo "xset s off"
xset s off
echo "xset s noblank"
xset s noblank

echo "xset -dpms"
xset -dpms

#######
#sleep 1
#echo "and a biggie... should maybe be done nearer fist..."
#echo "xrandr --output DVI-I-1 --primary --mode 2560x1600 --pos 1200x0 --rotate left --output HDMI-1 --mode 1920x1200 --pos 0x0 --rotate left --output DP-1 --off"
#xrandr --output DVI-I-1 --primary --mode 2560x1600 --pos 1200x0 --rotate left --output HDMI-1 --mode 1920x1200 --pos 0x0 --rotate left --output DP-1 --off
#######
echo "and just give it a few seconds to settle..."
sleep 1
echo -n " . "
sleep 1
echo -n " . "
sleep 1
echo -n " . "
sleep 1
echo -n " . "
sleep 1
echo ""
#echo "=== (!!! SKIPPING) X windows settings ==="
#echo "skipping xrdb -load ~/.Xresources"
xrdb -load ~/.Xresources
#xrandr --dpi 120
#echo xrandr --dpi 96
#xrandr --dpi 96
#echo "skipping xrandr --dpi 100 # because it hangs"
#xrandr --dpi 100
#echo "skipping xset -dpms"
#xset -dpms
#echo "skipping xmobar"
#xmobar &
#idk about adding an xmonad recompile.  esp /after/ xmobar, which i dont have it start... idk if wise.
#cd ~/.xmonad ;and xmonad --recompile
#
#echo "=== (!!!) X windows settings (SKIPPED (due to freezes needing debugged)) ==="
#echo
#feh --bg-scale /home/digit/huj3/DigitsStuff/images/dsktpbkgrnds/smplbak2ii-Digitsbelgianblueblondbullbackground-exp001-doublevert.jpg
#echo "feh --bg-scale /home/digit/huj3/DigitsStuff/images/dsktpbkgrnds/smplbak2ii-Digitsbelgianblueblondbullbackground-exp001-doublevert.jpg"
#echo "dev notes - still to add more to sorter."
#echo "dev notes - still much to retest n mend."
#echo "dev notes - check the skippings to restore^"
#echo "dev notes - still to add IF statements to prevent trying redo whats already done, and so on."
#echo "add a xrdb load and a separate xrdb merge for a colours-only config (so can pick between tark and other, without doing all the other things in there.)"
#still more to add
###
# find a way to add digitclock and digitclockround and digitwmsun
end

function alien
echo "it greeted me with the most elaborate gesture, then another, and another, incrementally getting simpler and simpler, until it all but waved, and i was snapped out of my dumbfoundedness, all i could do was wave back."
end

#reminder remember fold for sent. ;)

####################################
############## medias ##############
####################################
 #                                # 
####################################
####################################
# #####     ############     ##### #
#####         ########         #####
####           ######           ####
###             ####             ###
###             ####             ###
##      # #      ##      # #      ##
##               ##               ##
##      # #      ##      # #      ##
###             ####             ###
###             ####             ###
####           ######           ####
#####         ########         #####
#######     ############     #######
####################################
####################################
#mediastuff media atuff

#gonna tidy these more... like have
# 1. a yt housekeeping section,
# 2. a specific-topics section of
# 2a. specific-topic sub-sections (like for wim hof)
# 2b. specific-topic sub-sections (like for ... etc)
# 3. ...

#youtubehousekeeping ythousekeeping yt housekeeping ytdl house-keeping
alias ytdllf "youtube-dl --list-formats"
alias lf ytdllf
alias ywat ytdllf
alias ytwat ytdllf

## 2b. specific-topic sub-section for curing tooth decay, repairing teeth
#healingtones for teeth/dental
alias curetoothdecay "mpv /home/digit/cinema/_healing/teeth/Cure*"
#ramiel nagel's...
#...

function ramstraight
    mpv /home/digit/cinema/_Comedy/ram/
end

function ramshuffle
    mpv /home/digit/cinema/_Comedy/ram/ --shuffle
end

alias ram ramshuffle
#alias ram ramstraight

######### wim hof method ###########
#put my best hof set function/script in a hof alias here
alias hof hofmoreneatly

function hofall
    hofalong ; hofrealgood ; hofalong ; hollyhof ; hof  ; hoffinator  ; hofholly ; hofrandom  ; hofseven  ; hofalong  ; hoffresh ; hoflevinrhan ; hofrealgood ; hoftriple ; hoffiddy ; hofgood ; hofmore_function
end

function hofrandom
    mpv ~/cinema/_healing/wimhof/*.* --shuffle
end

alias hoffresh freshhof

function freshhof
    # https://www.youtube.com/watch?v=K0c_-OSxquk
    # extended 1:15, 1:30, 1:45 holds.
    mp18 "https://www.youtube.com/watch?v=K0c_-OSxquk"
end

function hoflevinrhan
    mpv "/home/digit/cinema/_healing/wimhof/Guided Wim Hof Method Breathing-tybOi4hjZFQ.mkv" "/home/digit/cinema/_healing/wimhof/4 rounds advanced Wim Hof guided breathing + OM MANTRA-g_jAjpZz-5Y.mp4"
end

alias hofholly hollyhof

function hollyhof-old
    #    mpv ~/Videos/hollyhof.mkv
    mpv ~/Videos/hollyhof.mp4
    mp18 "https://youtu.be/GoSMm2OHnsk"
    mpv /home/digit/cinema/_healing/wimhof/Wellness_Guru_Wim_Hof_Leads_Phillip_Holly_in_Breathing_Masterclass_This_Morning-GoSMm2OHnsk.mp4
end

function hollyhof-loop
    #    mp18 "https://youtu.be/GoSMm2OHnsk&t=427s"
    #mp18 "https://youtu.be/GoSMm2OHnsk" --ab-loop-a=<00:07:00>, --ab-loop-b=<00:11:19>
    #    mpv --start=07:00 --ab-loop-a=07:00 --ab-loop-b=11:19 ~/Videos/hollyhof.mp4
    mpv --fullscreen --panscan=1.00 --start=07:00 --ab-loop-a=07:00 --ab-loop-b=11:19 ~/Videos/hollyhof.mp4    
    #mpv --start=07:00 --end=11:11 ~/Videos/hollyhof.mp4 ; holyhof
end

#    mpv --fullscreen --panscan=1.00 --start=07:00 --ab-loop-a=07:00 --ab-loop-b=11:19 ~/Videos/hollyhof.mp4
### hofdev
function hoffinator #good version, checks&dl, fullscreen/panscan, loopedalias hollyhof hoffinator
    if test -f ~/Videos/hollyhof.mp4
	mpv --fullscreen --panscan=1.00 --start=07:00 --ab-loop-a=07:00 --ab-loop-b=11:19 ~/Videos/hollyhof.mp4
    else
	youtube-dl --format=18 "https://youtu.be/GoSMm2OHnsk" -o ~/Videos/hollyhof.mp4
	mpv --fullscreen --panscan=1.00 --start=07:00 --ab-loop-a=07:00 --ab-loop-b=11:19 ~/Videos/hollyhof.mp4
    end
end

#set your best "hollyhof" version here:
#alias hollyhof hollyhof-loop
alias hollyhof hoffinator #good version, checks&dl, fullscreen/panscan, loopedalias hollyhof 

alias hollyhopdrive hollyhop

alias hoftriple triplehof

function triplehof
    #holly hof once
    mpv --start=07:00 --end=11:11 /home/digit/cinema/_healing/wimhof/Wellness_Guru_Wim_Hof_Leads_Phillip_Holly_in_Breathing_Masterclass_This_Morning-GoSMm2OHnsk.mp4
    #russel hof once
    mpv --end=57:19 --start=52:05 /home/digit/cinema/_healing/wimhof/Heal\ Yourself\ with\ The\ Ice\ Shaman\ _\ Wim\ Hof\ \&\ Russell\ Brand-JPPlicAEFec.mp4
    #russel hof again once
    mpv --end=56:00 --start=51:11 /home/digit/cinema/_healing/wimhof/Corona\ Survival\ Guide\ with\ Wim\ Hof\ \&\ Russell\ Brand\ _\ Full\ Length\ Podcast-YfAgSusi6t0.mp4
end

function hofrealgood
    #    mpv https://www.youtube.com/watch?v=JPPlicAEFec
        if test -f ~/cinema/_healing/hof/hofrealgood.mp4
	mpv --fullscreen --panscan=1.00 --start=51:57 --ab-loop-a=52:01 --ab-loop-b=57:19 ~/cinema/_healing/hof/hofrealgood.mp4
    else
	youtube-dl --format=18 " https://www.youtube.com/watch?v=JPPlicAEFec" -o  ~/cinema/_healing/hof/hofrealgood.mp4
	mpv --fullscreen --panscan=1.00 --start=51:57 --ab-loop-a=52:01 --ab-loop-b=57:19 ~/cinema/_healing/hof/hofrealgood.mp4
    end
end

function hofgood
    #    mpv https://www.youtube.com/watch?v=JPPlicAEFec
        if test -f ~/Videos/hofgood.mp4
	mpv --fullscreen --panscan=1.00 --start=51:57 --ab-loop-a=52:01 --ab-loop-b=57:19 ~/Videos/hofgood.mp4
    else
	youtube-dl --format=18 "https://www.youtube.com/watch?v=JPPlicAEFec" -o ~/Videos/hofgood.mp4
	mpv --fullscreen --panscan=1.00 --start=51:57 --ab-loop-a=52:01 --ab-loop-b=57:19 ~/Videos/hofgood.mp4
    end	
end

alias hoffiddy fiddyhof

function fiddyhof
    #50 breaths.  2:30 3:00 3:30 4:00
    mp18 "https://www.youtube.com/watch?v=43cUc2iGiwM"
end

alias hofseven sevenhof

function sevenhof
    triplehof
    fiddyhof
end

function hofalong
    mpv --start=06:00 --end=25:33 /home/digit/cinema/_healing/wimhof/Breathe\ Along\ with\ Wim\ Hof\ _\ Guided\ Breathing-fLIoSNKaruA.mp4
end

function megahof
    # following this, 5 rounds hofalong, 3 round triplehof, 4 rounds fiddyhof = a dozen rounds!
    # stop early if u want.
    # just relax.  follow the breath.  no straining.  listen to your body.  present, now.
    hofalong
    triplehof
    fiddyhof
end

# hofmore
#function hofmore
function hofmore_function
# # # #!/usr/bin/fish
mpv --ytdl-format=18 "https://www.youtube.com/watch?v=PBBxpxNANCg" "https://www.youtube.com/watch?v=xlwC5-3iMXw" "https://www.youtube.com/watch?v=0BNejY1e9ik" "https://youtu.be/aGU-p64UOzA" "https://www.youtube.com/watch?v=tybOi4hjZFQ" "https://www.youtube.com/watch?v=OIGj6BMs6nY"  "https://www.youtube.com/watch?v=OBBvha4XSXQ"  "https://www.youtube.com/watch?v=DVlGufZ8N7o" 
# sort this one out to just the correct start and end time, and add to ^
mpv --ytdl-format=18 "https://www.youtube.com/watch?v=fLIoSNKaruA"

# https://youtu.be/aGU-p64UOzA is that cool new one with the layered nature music by that guy guiding it.  nicely done.  :)


# https://www.youtube.com/watch?v=OIGj6BMs6nY nice one. good sounds.  1:30 to 3
end
#/hofmore.

#^^^######### ^ the hof section ^ #########^^^#
###############################################

###############################################
#^^^######### ^ workout section ^ #########^^^#
function shoulders
    #    mpv --fullscreen --panscan=1.00 --start=07:00 --ab-loop-a=07:00 --ab-loop-b=11:19 ~/cinema/_healing/workout/shoulders.mp4
    mpv --fullscreen --panscan=1.00 --start=0:50 --ab-loop-a=00:50 --ab-loop-b=16:10 ~/cinema/_healing/workout/shoulders.mp4    
end

#^^^######### ^ workout section ^ #########^^^#
###############################################

##############  asmr  ##############
function asmr
    mpv --shuffle "/home/digit/cinema/_asmr/"
end

function sleepytime
    mpv --start=02:25 "/home/digit/cinema/_asmr/bedtime.mkv" "/home/digit/cinema/_asmr/deepsleep.mkv"
end

alias asmrsleepytime sleepytime

function sleeper
    timeout 4h mpv --playlist=/home/digit/cinema/_healing/healingtones/sleeplist 
end

alias sleepnow sleeper 

#^############^ asmr ^############^#
#v##########v not asmr v##########v#
#         but still sleepy         #

function sleepkit
mp18 --no-video "https://www.youtube.com/watch?v=lVRdLK6UDx8" "https://www.youtube.com/watch?v=wgbyID-Plqo" ;and mpv ~/cinema/_healing/healingtones/Sleep\ Fast\ _\ Sleep\ Meditation-6RAkklWOyQg.opus ;and timeout 4h mpv --shuffle --playlist ~/cinema/_healing/healingtones/sleeplist --volume=57
end


##############################################################
###  bedtime tv 
##############################################################

##############################################################
###  bedtime tv  ~  Comedy
##############################################################

# #!/usr/bin/fish

function bedtime
cd ~/cinema/_Comedy/
timeout 90m mpv --playlist=bedtime.playlist
#timeout 90m mpv --playlist=bedtime.playlist --shuffle
end

#bedtime



####################################

#for audiobooks
#as suggested here: https://joindiaspora.com/posts/d7a07570f6b60137843552540039b762
alias book "mpv --save-position-on-quit"

#gimmie all the vids from a chan
#youtube-dl -f best -citw -v <url-of-channel>

alias ytcdl     "ytcdl-best" #preferred

function ytcdl-best
youtube-dl -f best -citw -v $argv
end
#now i need make the 43 version, and the user (best&43) version too, lazy digit.
#function ytcdl-43
#alias ytudl
#function ytudl-best
#function ytudl-43

#what formats are available
alias yf        "youtube-dl -F $argv"

#andwatch and mwatch.  idea of a playlist cache file sorta thing.
function andwatch
echo $argv >> ~/cinema/watch
end

alias addwatch "andwatch"
alias aw "andwatch"

function mwatch
mpv -playlist ~/cinema/watch
end

alias morewatch "mwatch"
alias mw "mwatch"

#seems to me like there should be a remove first line.  for andwatch and mwatch to work
#also... could use actual command watch, to use as prompt to play next when new are added...

#same pitch at speed
alias mpv       "mpv --af=scaletempo"

#just music
#  (either these methods seem to work fine)
alias mpvm      "mpv --no-video $1"
#alias mpvm     "mpv --no-video"

##function mpvm #while there's need to specify stratum
##    strat -r aurtix mpv --no-video "$argv" #plays only first item
###    strat -r aurtix mpv --no-video "$0"   #failed attempt to get mpvm to play multiple files.
###    strat -r aurtix mpv --no-video        #failed attempt to get mpvm to play multiple files.
##end


alias mpf      "mpv --ytdl-format=$argv"

#gonna wanna make more of these and/or improve this one.
alias choons "mp18 https://youtu.be/oseASjXi1hM" # Thunderdome "Whisper of dead" Album 2020 (Early Hardcore/Gabber 90s) #fuckbags, it went private, just as i was making it an alias as my go-to choons.  

#youtubers
##sights
alias mplease   "mpv --ytdl-format=160"
alias mp160     "mpv --ytdl-format=160"

##freedom sounds
alias mpleep    "mpv --ytdl-format=171"
alias mp171     "mpv --ytdl-format=171"
##freedom sights
alias mp242      "mpv --ytdl-format=242"
alias mp278      "mpv --ytdl-format=278"
##freedom faves
alias mp43      "mpv --ytdl-format=43"
#bandwidthsalvs
alias mp5       "mpv --ytdl-format=5"
alias mp36       "mpv --ytdl-format=36"
alias mp17       "mpv --ytdl-format=17"
#more of em
#alias mp       "mpv --ytdl-format="
#tazys format choice
alias mptazy       "mpv --ytdl-format=18"
alias mp18     "mpv --ytdl-format=18"
alias mp92     "mpv --ytdl-format=92"
alias mp93     "mpv --ytdl-format=93"
#alias mp18 "strat -r aurtix mpv --ytdl-format=18 $1"
function mp18f #while needing specify which stratum
##    strat -r aurtix mpv --ytdl-format=18
#    strat -r aurtix mpv --ytdl-format=18 "$argv" #if i need that...?  ... nope...  only played first.
    strat -r aurtix mpv --ytdl-format=18 
end
# rumble
#alias mprumble "mpv --ytdl-format=webm-480p"
alias mprumble "mpv --ytdl-format=mp4-360p"
alias mprumblelive "mpv --ytdl-format=hls-0"
alias mprumbleliveafter "mpv --ytdl-format=hls-1200"
alias mp480 "mpv --ytdl-format=webm-480p"
alias mpwebm-480p "mpv --ytdl-format=webm-480p"
alias mprumble240p "mpv --ytdl-format=mp4-240p"
alias mprumble360p "mpv --ytdl-format=mp4-360p"
alias mprumble480p "mpv --ytdl-format=mp4-480p"
alias mprumble480p "mpv --ytdl-format=mp4-480p"

#

#master builder
alias mp22     "mpv --ytdl-format=22"

#odysee
alias mpvo "mpv --ytdl-format=hls-655"

#youtube watch things about...
#tazy format
function mps18
mpv --ytdl-format=18 ytdl://ytsearch10:"$argv"
end

#blind music search
function mpvms
mpv --no-video ytdl://ytsearch10:"$argv"
end

alias mpsm mpvms

#digit format
function mps43
mpv --ytdl-format=43 ytdl://ytsearch10:"$argv"
end

#plain search play, no specified format
function mps
mpv ytdl://ytsearch10:"$argv"
end

#search by date
#https://www.youtube.com/results?q=things
#https://www.youtube.com/results?q=things&sp=CAJQFA%253D%253D

# attempt to expedite downloading n watching of torrents
function getsome
rsync -Prav --bwlimit=700 --ignore-existing ~/torrents/progress/$argv/$argv.mkv ./$argv.mkv ;and mpv $argv.mkv
end

# prep to make getsome work.
function getready
    echo "umount ~/torrents"
    umount ~/torrents
    echo "sshfs ovhtoo:/home/digit/torrents ~/torrents"
    sshfs ovhtoo:/home/digit/torrents ~/torrents
end

                   #}
                  #`
                 #`
                #`
               #` 
        #############################
        #####I##             ## # # #
        ##TV#I## ###   # #   ########
        #####I##  #    # #   ## # # #
        ##  #I##  #  #  #  # ########
        #####I##             ## # # #
        #############################

#reminder, write "seen-ator" script to help manage frequent common youtube searches.  and/or just have some use sort by upload date.  :P

### "Local T.V."

function tv
tree -if ~/cinema/ | egrep 'mkv|avi|m4a|mp4' > ~/cinema/tvplaylist
mpv -shuffle -playlist ~/cinema/tvplaylist
end

function tv-ffs
mpv -playlist (find "~/linema" -type f | psub)
end

alias tvclassic "mpv -shuffle -playlist <(find /home/digit/c -type f)"

# populate with tvplaylistupdate script
alias tv_play_shuffled_cachedlist "mpv -shuffle -playlist ~/.tvplaylist"

function tvfunction
mpv -shuffle -playlist <(find $PWD -type f)
end

function comedy
tree -if ~/cinema/_Comedy | egrep 'mkv|avi|m4a|mp4' > ~/cinema/_Comedy/comedyplaylist
mpv -shuffle -playlist ~/cinema/_Comedy/comedyplaylist
end

function rd
tree -if ~/cinema/_Comedy/reddwarf | egrep 'mkv|avi|m4a|mp4' > ~/cinema/_Comedy/reddwarfplaylist
mpv -shuffle -playlist ~/cinema/_Comedy/reddwarfplaylist
end

function rd3
tree -if ~/cinema/_Comedy/reddwarf | egrep 'mkv|avi|m4a|mp4' > ~/cinema/_Comedy/reddwarfplaylist
mpv -shuffle -playlist ~/cinema/_Comedy/reddwarfplaylist
# tried to have this one do -playlist-count=3, but it kept complaining it didnt know wtf.
end

function scifi
tree -if ~/cinema/_scifiseries | egrep 'mkv|avi|m4a|mp4' > ~/cinema/_scifiseries/scifiplaylist
mpv -shuffle -playlist ~/cinema/_scifiseries/scifiplaylist
end

alias sciencefiction "scifi"

function trek
tree -if ~/cinema/_scifiseries/st | egrep 'mkv|avi|m4a|mp4' > ~/cinema/_scifiseries/trekplaylist
mpv -shuffle -playlist ~/cinema/_scifiseries/trekplaylist
end

function docu
tree -if ~/cinema/_docu | egrep 'mkv|avi|m4a|mp4' > ~/cinema/_docu/docuplaylist
mpv -shuffle -playlist ~/cinema/_docu/docuplaylist
end

function pbs
tree -if ~/cinema/_docu/pbs | egrep 'mkv|avi|m4a|mp4' > ~/cinema/_docu/pbs/pbsplaylist
mpv -shuffle -playlist ~/cinema/_docu/pbs/pbsplaylist
end

function cannabistv1 --description 'play latest yt cannabis vids (minus crap)'
mpv "https://www.youtube.com/results?sp=CAJIAOoDAA%253D%253D&search_query=cannabis+-marijuana+-trade+-shares+-company+-invest+-investing+-stock+-ip+-%22intelectual+property%22+-ventures" --load-unsafe-playlists
end

function cannabiswalk --description 'black the ripper from the dank of england taking his plants for a walk.'
    mpv "https://www.youtube.com/watch?v=iD9VI2rnc4g"
end

alias walk cannabiswalk

function pron
tree -if ~/cinema/.prawn | egrep 'mkv|avi|m4a|mp4' > ~/cinema/.prawn/pronlist
mpv -shuffle -playlist ~/cinema/.prawn/pronlist
end

#function prawn
#mpv -shuffle ~/bb3/cinema/.prawn/*
#end

alias tvhere "mpv -shuffle -playlist <(find /home/digit/c -type f)"

alias scorpion "mpv ~/c/tv/scorpion/*"
alias scorpionshuffle "mpv -shuffle ~/c/tv/scorpion/*"
#alias tv "mpv -shuffle ~/c/tv/*/*"

#thnx Zanchey from #fish on irc.oftc.net
function ztv
mpv -playlist (find $PWD -type f | psub)
end

function ztv2
mpv -playlist (find "$PWD" -type f | psub)
end

function mpvsp
find ./ -type f > playlist ;and mpv -shuffle -playlist playlist
end
#-iregex ".*\.\(flac\|mp3\|ogg\|wav\|avi\|mkv\|mp4\|ogm\|webm\)$" 


#do you have a fascbook?
#fascbook(){ mp43 "https://www.youtube.com/watch?v=JotAOgXFxSs" ; facebook ; }
#facebook(){ mp43 "https://www.youtube.com/watch?v=JotAOgXFxSs" ; fascbook ; }


#formats list
#140          m4a        audio only DASH audio  131k , m4a_dash container, aac  @128k (44100Hz), 52.45MiB
#171          webm       audio only DASH audio  149k , audio@128k (44100Hz), 45.90MiB
#141          m4a        audio only DASH audio  258k , m4a_dash container, aac  @256k (44100Hz), 105.30MiB
#160          mp4        254x144    DASH video  122k , 15fps, video only, 45.56MiB
#242          webm       424x240    DASH video  217k , 1fps, video only, 78.30MiB
#133          mp4        424x240    DASH video  256k , 25fps, video only, 100.82MiB
#243          webm       636x360    DASH video  418k , 1fps, video only, 145.27MiB
#134          mp4        636x360    DASH video  615k , 25fps, video only, 221.03MiB
#244          webm       848x480    DASH video  844k , 1fps, video only, 290.09MiB
#135          mp4        848x480    DASH video 1119k , 25fps, video only, 424.25MiB
#247          webm       1270x720   DASH video 1429k , 1fps, video only, 500.26MiB
#136          mp4        1270x720   DASH video 2245k , 25fps, video only, 806.59MiB
#248          webm       1906x1080  DASH video 2849k , 1fps, video only, 1.01GiB
#137          mp4        1906x1080  DASH video 4257k , 25fps, video only, 1.37GiB
#17           3gp        176x144    
#36           3gp        320x240    
#5            flv        400x240    
#43           webm       640x360    
#18           mp4        640x360    
#22           mp4        1280x720   (best)

# space n stuff 
function nasalive1
mp43 "https://www.youtube.com/watch?v=RtU_mdL2vBM"
end

# add these, u lazy bum.
# rt live
#ok
function rt
    mpv "https://www.rt.com/on-air/"
end

#something inteligent and interesting and potentially worthy to watch from youtube
function intrigueme
    mpv -shuffle --playlist /home/digit/bb3/images/webpagesaves/IntelligentYouTubeChannelsPlaylist
end

#and add this u lazy...
# dave live

# more medias
#probably could do with moving somewhere more appropriate
function moderat
    mpv ~/cinema/moderatanewerror.mkv
end

function spinningplates
    mpv /home/digit/bb3/musicilove/other/Radiohead-LikeSpinningPlates.mkv
end

function cbd
    mpv "https://www.youtube.com/watch?v=3bZb10ZxpBk" "https://www.youtube.com/watch?v=gJoFzLjxibU"
end

function ubi
    mpv --ytdl-format=43 "https://www.youtube.com/results?sp=CAI%253D&search_query=basic+income"
end

### #######    #######      #####  
### ###   ###  ###   ###  ###   ###
### #######    #######    ###
### ###   ###  ###   ###  ###   ###
### #######    #######      #####  

### BBC

#template
#function bbc
#mpv --ytdl-format="" "$argv"
#end

function bbc13 #tryin t get a universal een
mpv --ytdl-format="stream-uk-iptv_streaming_concrete_combined_hd_mf_bidi_uk_hls-1013" "$argv"
end

function bbc13-0 #tryin t get a universal een
mpv --ytdl-format="stream-uk-iptv_streaming_concrete_combined_hd_mf_bidi_uk_hls-1013-0" "$argv"
end

function bbc13-2021-0
    mpv --ytdl-format="mf_akamai-1013-0" "$argv"
end

function bbc13-2021-1
    mpv --ytdl-format="mf_akamai-1013-1" "$argv"
end

#alias bbc bbc13-0
#alias bbc bbc13
alias bbc bbc13-2021-0
# and re-do these, so can chain em... ?   for in do... make playlist?

function bbc13-1 #tryin t get a universal een
    mpv --ytdl-format="stream-uk-iptv_streaming_concrete_combined_hd_mf_bidi_uk_hls-1013-1" "$argv"
end

function bbc1498c
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1498" "$argv"
end

function bbc1640
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1640" "$argv"
end

function bbc1680
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1680" "$argv"
end

function bbc1681
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1681" "$argv"
end

function bbc1677
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1677" "$argv"
end

function bbc1497
mpv --ytdl-format="iplayer_stb_streaming_hd_akamai_hls_open-1497" "$argv"
end

function bbc1497b
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1497" "$argv"
end

function bbc1497c
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1497" "$argv"
end

function beeb1496
mpv --ytdl-format="iplayer_stb_streaming_hd_akamai_hls_open_https-1496" "$argv"
end

function bbc1496b
mpv --ytdl-format="iplayer_stb_streaming_hd_akamai_hls_open-1496" "$argv"
end

function bbc1496c
mpv --ytdl-format="iptv_streaming_1500_akamai_hls_open-1496" "$argv"
end

function bbc143
mpv --ytdl-format="stream-uk-iptv_streaming_concrete_combined_hd_mf_akamai_uk_hls-143" "$argv"
end

function bbc1496
mpv --ytdl-format="iplayer_stb_streaming_hd_akamai_hls_open-1496" "$argv"
end

function bbc796
mpv --ytdl-format="iplayer_stb_streaming_sd_akamai_hls_open-796" "$argv"
end

function bbc797
mpv --ytdl-format="iplayer_stb_streaming_sd_akamai_hls_open-797" "$argv"
end

function bbc802
mpv --ytdl-format="stream-uk-iptv_streaming_concrete_combined_hd_mf_bidi_uk_hls-802" "$argv"
end

function bbc888
mpv --ytdl-format="iplayer_stb_streaming_sd_akamai_hls_open-888" "$argv"
end

function bbc891
mpv --ytdl-format="iplayer_stb_streaming_sd_akamai_hls_open-891" "$argv"
end

#################################

### LEARNINGS

function learnportuguese
   mpv "https://www.youtube.com/watch?v=Yjq5eJn530Y" "https://www.youtube.com/watch?v=6A-_ej2ag74" "https://www.youtube.com/watch?v=t5DjVN-bBh4" "https://www.youtube.com/watch?v=qr030IcoWJQ" "https://www.youtube.com/watch?v=VRtL2GsAtkA"
end


#################################

                  ##       ###
            #       #         ##
       #     #       #          #
   #    #     #       #          #
#   #   #     #       #          #
   #    #     #       #          #
       #     #       #          #
            #       #         ##
                  ##       ###

#################################
### RADIO GA GA ### RADIO GOO GOO

#radio gabberdisco
function radiogabberdisco
    mpv --shuffle /home/digit/cinema/auditorium/dancefloor/Gabberdisco*
end

function radiogabberdisco-online
    mpv --no-video --shuffle "https://www.youtube.com/c/GabberDisco/videos"
end

function gabberdisco
    #kinda redundant test anyway.  if it's not there, it'll move on to next.  n_n
    if test -d /home/digit/cinema/auditorium/dancefloor/
	    mpv --shuffle /home/digit/cinema/auditorium/dancefloor/Gabberdisco*
	else
	    mpv --no-video --shuffle "https://www.youtube.com/c/GabberDisco/videos"
    end
end

    
#ganymede
function ganymede
    mp18 "https://www.youtube.com/watch?v=tLDl9wy53gs"
end

#reiki
function reiki-chakras-nice-000
    mp18 "https://youtu.be/7rIetrofueo"
end
#alias reiki "mpv --shuffle ~/cinema/healingtones/reiki"
function madireiki-000
    mp18 "https://www.youtube.com/watch?v=PBBxpxNANC"
end

alias reiki000 reiki-chakras-nice

#hard house
alias radiohardhouse "mpv ~/c/radio/hhuk.ogg.m3u"
#soundscape
alias radiodrone "mpv http://somafm.com/dronezone32.pls"
#trance
#alias radiotrance "mpv ~/c/radio/thetrip.pls"
alias radiotrance "mpv http://somafm.com/thetrip.pls"
#radioraznitzantrance
alias radioraznitzantranceuploads "mpv --no-video https://www.youtube.com/user/RazNitzanMusic/videos"
alias radioraznitzantrancechan "mpv --no-video https://www.youtube.com/user/RazNitzanMusic" #idk, it lagged b4 startn, so ^

#dizzie

#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"

#[2022-07-17 19:44:19] <Digit> "Digit, that PC had a dead harddrive :( (the old stream is gone)"    ... is why we cant find that hardstyle anymore. 

#alias radiodizzieold "mpv http://cowtapult.net:8000/stream.ogg"
#alias radiodizzie "mpv http://fredslev.net:8000/"
#alias radiodizzieserenity "mpv http://serenity.fredslev.dk:8000/stream"
#alias radiodizzietrance "mpv http://fredslev.net:8000/"
#alias radiodizziepsy "mpv http://radio.fredslev.net:9000/psytrance"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizziepsy "mpv http://radio.fredslev.net:8000/psytrance"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
#alias radiodizzietechno "mpv http://radio.fredslev.net:9000/techno"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizzietechno "mpv http://radio.fredslev.net:8000/techno"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
#alias radiodizziehardstyle "mpv http://radio.fredslev.net:9000/hardstyle"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizziehardstyle "mpv http://radio.fredslev.net:8000/hardstyle"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizzieindustrial "http://radio.fredslev.net:8000/industrial"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizziereggae "mpv http://fredslev.net:9000/reggae"
#old radiodizzie
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizzie "mpv http://fredslev.net:9000/stream"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
#alias radiodizzielive "mpv http://fredslev.net:8000/"
alias radiodizzielive "mpv http://fredslev.net:8000/stream"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizzierock "mpv http://fredslev.net:7000/stream"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizzieserenity "mpv http://serenity.fredslev.dk:8000/stream"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
#alias radiodizzietrance "mpv http://fredslev.net:9000/stream"
#alias radiodizziednb "mpv http://radio.fredslev.net:/8000/dnb"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
function radiodizziednb
mpv "http://radio.fredslev.net:8000/dnb"
end
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodnb "mpv http://radio.fredslev.net:8000/dnb"
#"Just keep the links to yourself, I don't have bandwith to this to be shared with all kinda of fora irc channels :)"
alias radiodizzielivednb "mpv http://awesome.fredslev.net:8000" #"livemixing dnb"

#spacestation soma
alias radiosoma "mpv https://somafm.com/spacestation.pls"
alias radiocliq "mpv http://somafm.com/cliqhop/"
alias radiodubstepbeyond "mpv http://somafm.com/dubstep256.pls"
alias radiodubstepbeyond256 "mpv http://somafm.com/dubstep256.pls"
alias radiodubstepbeyond128 "mpv http://somafm.com/dubstep.pls"
alias radiodfm "mpv http://stereo.dfm.nu/"

#elite
#alias radioelite="mpv http://listen.radionomy.com/radio-sidewinder.m3u"
alias radioelite "mpv ~/c/radio/radio-sidewinder.m3u"

# cembi muhod ######################
function cembi
#    mpv "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - semble/*"
#    mpv "/home/digit/huj3/digitsaudio/All\ In\ Progress/soffmi\ muhod/________001postcounterpart/*embi*flac" "/home/digit/huj3/digitsaudio/All In Progress/cembi muhod/*flac"
mpv /home/digit/huj3/digitsaudio/All\ In\ Progress/soffmi\ muhod/________001postcounterpart/cembimuhod*flac /home/digit/huj3/digitsaudio/All\ In\ Progress/cembi\ muhod/cembimuhod*flac
end

# soffmi muhod ######################
function semble
#    mpv "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - semble/*"
    mpv "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - semble/"
end

function ripoonjadi
    #    mpv --no-audio-display "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - ripoonjadi/"
#    mpv --no-audio-display "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - ripoonjadi/*flac"
    mpv --no-audio-display "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - ripoonjadi/ripoonjadioutput.wav"
    mpv --no-audio-display "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - ripoonjadi/reetroughdahghihnnoutput.wav"
    mpv --no-audio-display "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - ripoonjadi/hadarizeoutput.wav"
end
alias ripoonjaddi ripoonjadi

function radiosoffmimuhod
#    mpv -shuffle ~/huj3/digitsaudio/Released/soffmi\ muhod/*/*flac
#mpv --shuffle ~/Music/soffmimuhod-freemusictubeuploads/*
mpv --shuffle ~/cinema/auditorium/soffmimuhod/soffmimuhod-freemusictubeuploads/* 
end

function radioautechre
#    mpv -shuffle ~/huj3/digitsaudio/Released/soffmi\ muhod/*/*flac
#mpv --shuffle ~/Music/soffmimuhod-freemusictubeuploads/*
#mpv --shuffle ~/cinema/auditorium/soffmimuhod/soffmimuhod-freemusictubeuploads/*
mpf --shuffle ~/musicilove/autechre/
end

function sleepwise
mpv "/home/digit/huj3/digitsaudio/Released/soffmi muhod/soffmi muhod - lojg mucg/soffmi muhod - lojg mucg - 06 sleepwise.flac"
end

##ominator
function ominator
    #mpv ~/huj3/digitsaudio/Released/soffmi\ muhod/soffmi\ muhod\ -\ ominator-PREVIEW2.flac
    mpv ~/Music/soffmi\ muhod\ -\ ominator-PREVIEW2.flac

end

#havabong
function havabong
    mpv "https://soffmimuhod.bandcamp.com/track/havabong"
end
#alias havabong "mpv ~/Music/soffmimuhod-freemusictubeuploads/havabong-r3BMJSEqSA8.m4a"
#alias havabong "mpv ~/huj3/digitsaudio/Audio\ Samples\ Dump/havabong.flac"

#other artists
##aimee mann
###the moth (les deux love orchestra cover)
##mpvm "https://www.youtube.com/watch?v=JG6x4MHdTWM"
#alias moth "mpv ~/bb3/cinema/library/auditorium/moth.opus"
##alias moth "echo playing The Moth (Les Deux Love Orchestra Cover), aquired from https://www.youtube.com/watch?v=JG6x4MHdTWM" ; mpv ~/bb3/cinema/library/auditorium/moth.opus"
function moth
    echo "playing The Moth (Les Deux Love Orchestra Cover) Aimee Mann"
    echo "aquired from https://www.youtube.com/watch?v=JG6x4MHdTWM"
    echo "tho a more direct original source would be https://www.youtube.com/watch?v=IG8l2ArHzDo"
    mpv ~/bb3/cinema/library/auditorium/moth.opus
end

function orgone
    #hawkwind - orgone accumulator
    mpv "https://www.youtube.com/watch?v=MPISXvQwm_E"
end


function notimeforcaution
    mpv ~/cinema/_healing/'Oscar Movie Interstellar (2014) Docking Full Scene [No Time for Caution] [HD]-TV1767i8X4Q.mkv' --volume=150
end

function makeitamiracle
    mpv '/home/digit/bb3/musicilove/dance/Marc Korn & Jaycee Madoxx - Miracle (Steve Modana Remix)-ghTn1Ey2vbs.opus' '/home/digit/bb3/musicilove/dance/Marc Korn & Jaycee Madoxx – Miracle (Withard & Quickdrop Remix)-7jWcdq9Tq0g.opus'
end

#
function slowthisbirddown-web
        mpvm "https://www.youtube.com/watch?v=wgbyID-Plqo"
end

function boc
    mpv ~/bb3/musicilove/boc/* --shuffle
end

function maq
    mpv ~/bb3/musicilove/boc/Boards\ of\ Canada\ -\ Macquarie\ Ridge\ \(Aurora\ Borealis,\ Northern\ Lights\)\ HD,\ Salten\ -\ Norway-ZKSM-jyQh3o.opus
end

alias mac maq

function slowthisbirddown
    #if file exists, play
    if test -f "/home/digit/bb3/musicilove/boc/Slow This Bird Down-wgbyID-Plqo.webm"
        mpv "/home/digit/bb3/musicilove/boc/Slow This Bird Down-wgbyID-Plqo.webm"
    else #use
        mpvm "https://www.youtube.com/watch?v=wgbyID-Plqo"
    end
end



#a moment of clarity 2021 local opus
#function amomentofclarity-flow
function amomentofclarity
    mpv ~/Music/amomentofclarity.opus
end

# several moments of clarity 2021 local opus
#function severalmomentsofclarity-flow
function severalmomentsofclarity
    #if file exists, play
    if test -f ~/Music/amomentofclarity.opus
        mpv --speed="0.12" ~/Music/amomentofclarity.opus
    else #use
        mpvm --speed="0.12" "https://www.youtube.com/watch?v=BmzMGjPU7tE"
    end
end


#
function amomentofclarity-web
    mpvm "https://www.youtube.com/watch?v=BmzMGjPU7tE"
end

#function amomentofclarity-levin
#    #if file exists, play
#    if test -f /home/digit/cinema/readingmusic/amomentofclarity-boc.m4a
#        mpv /home/digit/cinema/readingmusic/amomentofclarity-boc.m4a
#    else #use
#        mpvm "https://www.youtube.com/watch?v=BmzMGjPU7tE"
#    end
#end

#function severalmomentsofclarity-levin
#    #if file exists, play
#    if test -f /home/digit/cinema/readingmusic/amomentofclarity-boc.m4a
#        mpv --speed="0.12" /home/digit/cinema/readingmusic/amomentofclarity-boc.m4a
#    else #use
#        mpvm --speed="0.12" "https://www.youtube.com/watch?v=BmzMGjPU7tE"
#    end
#end

function ytdlmpv
#thanks arnica407@diasp.org for this tip.  ~ i hope i refactored it for fish syntax correctly;
#original:  alias ytdl='/usr/local/bin/youtube-dl --exec='\''mpv {} && rm {}'\'''
    echo "this downloads the whole video first, then plays, and deletes after."
    '/usr/local/bin/youtube-dl --exec='\''mpv {} && rm {}'\'''
# echo.... nope where's the rest... failed copy, or already copied and not shown in diff?
end

function chigung
mpv "https://www.youtube.com/watch?v=3Q8AHmMaTi0" "https://www.youtube.com/watch?v=INvUysWoZ64"
end

alias qigong "chigung"

function rttv
echo "this is probably still broken.  rt moved the goal posts n made their streams utterly shit."
mpv "https://www.rt.com/on-air/"
end

function rtuk
mpv "https://www.youtube.com/watch?v=wxBlXXwmIyY"
end

function rtuk43
mp43 "https://www.youtube.com/watch?v=wxBlXXwmIyY"
end

function rtuk92
mpv --ytdl-format=92 "https://www.youtube.com/watch?v=wxBlXXwmIyY"
end

#mend manifesting
function mend-audio
    flite "Already, mended, now.  Mended, now.  Mendwards.  Mending.  Mended.  Already mended now."
end

function mend-text
    echo "Already, 
mended,
now.  
Mended, now.
Mendwards.
Mending.
Mended.
AlreadyMendedNow"
end

function mend
# 20210321 seems i have the wrong lolcat.  -v gives the version on the wrong one.  not the vertical rate.  ... 
#    mend-text | figlet -f small | lolcat -v 3 -h 7
#    mend-text | toilet -f small | lolcat -v 0.81 -h 0 # iz gud
#    mend-text | toilet -f small | lolcat -p 3 -F 0.02 # for that ruby version of lolcat
#
# this is lovely.   ... but i'm gonna switch it off for a bit [20210718], n replace it with just...
#
#    mend-text | toilet -f future | lolcat -p 3 -F 0.02 # for that ruby version of lolcat
#
# ... replace it with just:
mend-text
#mend-text | lolcat -p 3 -F 0.02 #disable if/while lolcat's being a high load weirdo every time after not run for a while.
end

function paulflynn
#   mpv "https://www.youtube.com/watch?v=RJ0bwDe8o2M"
    echo "playing Paul Flynn's call to take cannabis in westminster"
    echo "aquired from https://www.youtube.com/watch?v=RJ0bwDe8o2M"
    mpv ~/bb3/cinema/library/auditorium/speeches/paulflynn1.m4a
end

function kylie
#    mp18 "https://www.youtube.com/watch?v=YPwtJ89jes4" "https://www.youtube.com/watch?v=t1DWBKk5xHQ" "https://www.youtube.com/watch?v=63vqob-MljQ"
    mp18 "https://www.youtube.com/watch?v=YPwtJ89jes4" "https://www.youtube.com/watch?v=63vqob-MljQ"
end

####################################################### games
#   GGGGGGG      aAa     M         M EEEEEEEEEEE   SSSSSSSSS       
#GGG           aaa aaa   MM       MM EEE         SSSS       
#GGG    GGGG  aaa   aaa  MMM MMM MMM EEEEEEE        SSSSS             
#GGG     GGG aaaaaaaaaaa MMM  M  MMM EEE                SSSS 
#   GGGGGGGG AAA     AAA MMM     MMM EEEEEEEEEEE SSSSSSSSS   

alias terminalphase "raco terminal-phase"

###############################################################################PACKAGERY
#pppppp     AAA      Ccccc   kkk   kkk    AAA      ggggg   EEEEEEEEE RRRRRRR   YYY   YYY
#pp   ppp  aaAaa   Ccc   ccc kkk  kkk    aaAaa   ggg       EEE       RRR   RRR YYY   YYY
#pppppp   aaa aaa  Ccc       kkkkkkk    aaa aaa  ggg  GGGG EEEEEEEEE RRRRRRR    YYYYYYY
#pp      aaaaaaaaa Ccc   ccc kkk  kkk  aaaaaaaaa ggg   GGG EEE       RRR  RRR     YYY
#pp      AAA   AAA   Ccccc   kkk   kkk AAA   AAA   gggg/GG EEEEEEEEE RRR   RRR    YYY

# ( see bedrockery section for more packagery ) 

# Portage 
#this makes eix searches not limit to 200 results
set -x EIX_LIMIT_COMPACT 0

# Apt
alias apt-search "apt-cache search"

########
# omnipackagemanager
# jis.  just-install-stuff.
# idk^ thought i'd try name it.

######
# rspm

# yes, gona re-write some rspm in my fish config.  -- Digit.

#flatset example, with voidlinux.
alias canhaz "sudo xbps-query -Rs"
alias whatsnew "sudo xbps-install -S"
alias sup "sudo xbps-install -Su"
alias gimmie "sudo xbps-install "
alias getrido "sudo xbps-remove"

#a simple implementation of rspm, fishfig style

######################################
##### rspm command name configuration:
    # packagesearch
#set ps $packagesearch
#set $packagesearch canhaz
    # package list update.  refreshes the list of what can be installed.
#set plu $packagelistupdate
#set $packagelistupdate whatsnew
    # all package upgrade.  upgrades all installed software to newest.
#set apu $allpackageupgrade
#set $allpackageupgrade sup
    # install these packages (and their dependencies)
#set itp $installthesepackages
#set $installthesepackages gimmie
    # uninstall these packages (and their dependencies? ~ varies per distro)
#set utp $uninstallthesepackages
#set $uninstallthesepackages getrido
######################################

#a simple implementation of rspm fishfig style
#if  egrep 'devuan|debian|ubuntu' /etc/os-release
#    alias $ps "apt-cache search $argv"
#else
#    grep void /etc/os-release
#    alias $ps "sudo xbps-query -Rs"
#else       
#    grep gentoo /etc/os-release
#    if ls /usr/bin/eix
#	alias $plu "eix"
#    else
#	   alias $plu "emerge --search"
#    end
#else
#    grep witch /etc/os-release
#    alias $ps "magic whatever"
#end
##end

###  ^^^^^ commentted out that cos it borked fishfig loadin.  wut i do?  it no like nested if statements?

##############################################
####### nixos/ package manager aliases #######
# install package
#alias nei='nix-env -i'
# uninstall package
#alias nee='nix-env -e'
# search
#alias neqag='nix-env -qa \* | grep'
#alias neaqg='nix-env -qa \* | grep'
# list all available
#alias neqa='nix-env -qa \*'
#alias neaq='nix-env -qa \*'
# list installed 
#alias neq='nix-env -q \*'
# search installed
#alias neq='nix-env -q \* | grep'
# update available packages list ( i think )
#alias ncu='nix-channel --update'
# upgrade --dry-run
#alias neup='nix-env -u --dry-run'
#alias neudr='nix-env -u --dry-run'
# upgrade (wait!  only run as root at / ... or some warning like that iirc)
#alias neu='nix-env -u'
# undooooooo!
#alias nerb='nix-env --rollback'
# roll back to $n
#alias nesg='nix-env --switch-generation '
# list available rollbacks
#alias nelg='nix-env --list-generations'
#another search
#neps(){ nix-env -qa \* -P | fgrep -i "$1"; }

##### digit's new alternate nixos package search model
### update package list
#alias dpu='nix-env -qa > ~/packages'
### list package
#alias dpl='cat ~/packages'
#alias dpl='less ~/packages'
### search package
#dps(){ cat ~/packages | grep "$1"; }
### install package
#dpi(){ nix-env -i "$1"; }

############################
####### fayels xfers #######
####### da functions #######


### this digsync, its idea is to make my fave rsync ops aliased
#function digsync
#    echo "digsync appends. ssh. preserves. progress. "
#    echo "you can choose what bw limit"
#    BWL='$1'
#    rsync -avP --append --bwlimit=$BWL -e ssh $2 $3
#end

# fed up of doing cd after mkdir?  now there's mkcd
function mkcd --description 'mkdir and cd'
        mkdir $argv[1]
        and cd $argv[1]
#	and ls $argv[1]
end
#for amusement, i added ls too...
#just becuase i have that weird reflex to ls in freshly created dirs.
#... wtf do i expect to find in there??? XD XD XD

############################
####### XBPS ALIASES #######
####### & FUNCTIONS. ####### 

#alias xbps-list "xbps-list-packages-ypnosestyle"
alias xbps-list "xbps-list-packages-domstyle"

function xbps-flatlist
    xbps-list-packages-ypnosestyle > xqlotmp
    sed 's/$/ /g' xqlotmp | tr -d '\n' ; echo
    rm xqlotmp
end

######################################################################
# this one did not translate so easily to fish
#
# fish: The “$” character begins a variable name.
# The character “{”, which directly followed a “$”,
# is not allowed as a part of a variable name,
# and variable names may not be zero characters long.
# To learn more about variable expansion in fish,
# type “help expand-variable”.
# 
#
#
#function xbps-list-packages-ypnosestyle
#    xbps-query -m | while IFS=$'\n' read -r PKG; do echo "${PKG%-*}"; #done
#end
#
######################################################################
function xbps-list-packages-domstyle
    xbps-query -m | rev | cut -d"-" -f2- | rev
end

###########################
####################


########################
########################\
#######          ####### |
####       #        #### |
##         #          ## |
#          #           # |
#          ####        # |
#                      # |
##                    ## |
####                #### |
#######          ####### |
######################## |   Time n stuff.
######################## |
#_______________________\|

alias day today

function today
date +%A
end

#comment this one out if it irritates
#alias date nowthen
# noooo dinnae do dat, it complains.

#wanna get emacs calendar/diary to recognise this format.  it looks good:   2018-06-21_18:21:50
function nowthen
date +%F_%T
end

##########################
##########################
##########################
##########################
##########################

#### special one!
### as seen on archwiki for skype.
#alias fyafox='xhost +local: && su fox -c firefox'

#second version, after wheel trick
#alias ffox='xhost +local: && sudo -u fox /nix/store/w53y2zxglxpswfnl8y3y93jm11cr4jfx-firefox-35.0/bin/firefox'

#easy clear
alias l "clear"

#shortcut
#LOADINGBAY='ovhtoo:/home/digit/stuff/ninudeskia/ryverdyak/loadingbay'

## funky functions

#orbea's slackware package searchery
# slackpkgsearch(){
#( cd /var/log/packages/ ; grep -x 'U.*M' * ) | awk -F: '{print $3 "\t" $1}' | sort -n 
#}



#despacer
#function despacerish
#for file in **/*\ * ; mv "$file" "${file// /_}" ; end

####################################################################
#   __         _          __         _          __         _       #
#  / _|___ _ _| |_ ___   / _|___ _ _| |_ ___   / _|___ _ _| |_ ___ #
# |  _/ _ \ ' \  _(_-<  |  _/ _ \ ' \  _(_-<  |  _/ _ \ ' \  _(_-< #
# |_| \___/_||_\__/__/  |_| \___/_||_\__/__/  |_| \___/_||_\__/__/ #
#                                                                  #
# fonts fonts fonts 

#wheremybitchesat=wheremyfontsat (see alias beneath)
function wheremybitchesat
    #if fonts
    echo "fonts:"
    #default
    #if ttf
    echo "    ls ~/.fonts | grep ttf | sed s/.ttf//"
    ls ~/.fonts | grep ttf | sed s/.ttf//
    #if otb
    #
    echo "    ls ~/.fonts | grep otb | sed s/.otb//"
    ls ~/.fonts | grep otb | sed s/.otb//    
    #if all
    
end

#until i augment wheremybitchesat with its multi option features, still just fonts, this digitsfonts alias just points to wheremybitchesat without options.
alias digitsfonts wheremybitchesat

#speaking of options... see ~/bin/fishyoptionstest* for latest progress i've made on figuring out how to get fish to take n parse --options/-o.  at time of writing, stumped on "argparse" in fishyoptionstest2

#list monospace bitmap fonts
#as seen: http://www.pixelbeat.org/docs/fc_fixed.html
function fontslist-mono-bitmap
fc-list ":spacing=mono:scalable=false" family pixelsize
end

function fontslist-mono-scalable
fc-list ":spacing=mono:scalable=true" family pixelsize
end

function fontslist-nonmono-bitmap
fc-list ":spacing=proportional:scalable=false" family pixelsize
end

#   __   __         _
#  / /  / _|___ _ _| |_ ___
# / /  |  _/ _ \ ' \  _(_-<
#/_/   |_| \___/_||_\__/__/                         / fonts
##############################################################
setxkbmap -option ctrl:nocaps



